问答

汇集网友智慧,解决技术难题

21ic问答首页 - TAG - MUC GD32 I2C
  • GD32E503硬件I2C问题

    求大佬们帮忙看看[img]https://bbs.21ic.com/static/image/smiley/comcom/9.gif[/img]刚开始搞编程,最近在学习GD32E503-Start的开发板,按照官方提供的固件库使用指南操作在使用硬件I2C的时候发现ADDSEND位一直不置1,导致程序一直卡在 [color=#f00000]while(!i2c_flag_get(i2c_periph,I2C_FLAG_ADDSEND));[/color] 检查硬件连接也没啥问题,把程序下进去之后,疯狂按复位,发现有那么几次ADDSEND被置1了,真的搞不清楚什么情况,求各位帮忙看看,代码是按照官方提供的例程写的,使用的是I2C1,PB10,PB11引脚 void lmp_reg_write(uint32_t i2c_periph, uint32_t lmp_reg, uint8_t datatransmit) { while(i2c_flag_get(i2c_periph,I2C_FLAG_I2CBSY)); i2c_start_on_bus(i2c_periph); while(!i2c_flag_get(i2c_periph,I2C_FLAG_SBSEND)); i2c_master_addressing(i2c_periph,LMP_ADDR_WRITE,I2C_TRANSMITTER); [color=#f00000]while(!i2c_flag_get(i2c_periph,I2C_FLAG_ADDSEND));[/color] i2c_flag_clear(i2c_periph,I2C_FLAG_ADDSEND); while(!i2c_flag_get(i2c_periph,I2C_FLAG_TBE)); i2c_data_transmit(i2c_periph,lmp_reg); while(!i2c_flag_get(i2c_periph,I2C_FLAG_TBE)); i2c_data_transmit(i2c_periph,datatransmit); while(!i2c_flag_get(i2c_periph,I2C_FLAG_BTC)); i2c_stop_on_bus(i2c_periph); while(I2C_CTL0(i2c_periph)&0x0200); } 供电我是直接用usb线到电脑上,连的gd-link那个usb口,也方便烧录。

    国产芯片 硬件 I2c ip While AD

    4508浏览量 4回复量 关注量