- 积分
- 193
- 在线时间
- 141 小时
- 最后登录
- 2024-4-30
- 阅读权限
- 50
- 精华
- 0
- UID
- 1085381
- 帖子
- 252
- 精华
- 0
- 经验
- 193 点
- 金钱
- 179 ¥
- 注册时间
- 2023-12-12
|
- main程序源码给大家看看。
- #define stm8s003
- #include <stm8s.h>
- #include <stm8s003f3p.h>
- #include <stm8s_i2c.h>
- #include <stm8s_clk.h>
- #include <stm8s_gpio.h>
- #define AK4497AD 0x20
- void delay_100ms(void)
- {
- unsigned char i,j;
- for(i=0;i<255;i++)//2*255个指令周期
- for(j=0;j<255;j++);//2*255个指令周期
- }
- void Mute_release(void)
- {
- //PD_ODR_ODR4 = 1;
- PD_ODR = 0xFF;
- }
- uint8_t I2C_Write(uint8_t address,uint8_t data)
- {
- while(I2C_GetFlagStatus( I2C_FLAG_BUSBUSY));
-
- I2C_GenerateSTART( ENABLE);//开启I2C1
- while(!I2C_CheckEvent( I2C_EVENT_MASTER_MODE_SELECT));/*EV5,主模式*/
-
- I2C_Send7bitAddress(AK4497AD, I2C_DIRECTION_TX );//器件地址 -- 默认0xD0
- while(!I2C_CheckEvent( I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
-
- I2C_SendData(address);//寄存器地址
- while (!I2C_CheckEvent( I2C_EVENT_MASTER_BYTE_TRANSMITTED));
-
- I2C_SendData(data);//发送数据
- while (!I2C_CheckEvent( I2C_EVENT_MASTER_BYTE_TRANSMITTED));
- I2C_AcknowledgeConfig(ENABLE);
-
- I2C_GenerateSTOP( ENABLE);//关闭I2C1总线
- }
- void Sys_Init(void)
- {
- CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
- I2C_Cmd(DISABLE);
- GPIO_Init(GPIOD, GPIO_PIN_4, GPIO_MODE_OUT_OD_LOW_FAST);
- I2C_Init(100000, 0xA0, I2C_DUTYCYCLE_2, I2C_ACK_CURR, I2C_ADDMODE_7BIT, 0x08);
- I2C_Cmd(ENABLE);
- }
- int main( void )
- {
- Sys_Init();
- delay_100ms();
- delay_100ms();
- delay_100ms();
- delay_100ms();
- delay_100ms();
- I2C_Write(0x01,0x02);//CS4398替换成0x02,0x10 --IIS 24bit;
- I2C_Write(0x08,0x0C);//CS4398替换成0x08,0x00 --清零开始工作;
- I2C_Write(0x00,0x9F);
- delay_100ms();
- Mute_release();
- while(1);
- }
- #ifdef USE_FULL_ASSERT
- void assert_failed(u8* file, u32 line)
- {
- while (1)
- {
- }
- }
- #endif
复制代码 |
|