STM32F4 I2C查询方式自发自收程序一直卡在while

2019-07-14 16:40发布

本人菜鸟,初学STM32F4 在调试I2C程序时,用I2C1作为主发送,I2C2作为从接收,进行自发自收,可是程序一直卡在while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));上,一直找不出原因,求高手指导
以下是全部代码
#include"stm32F4xx.h"

void RCC_Configuration(void);
void GPIO_Configuration(void);
void I2C_Configuration(void);
void I2C_start(I2C_TypeDef* I2Cx, uint8_t address, uint8_t direction);
void I2C_write(I2C_TypeDef* I2Cx, uint8_t data);
uint8_t I2C_read_ack(I2C_TypeDef* I2Cx);
uint8_t I2C_read_nack(I2C_TypeDef* I2Cx);
void I2C_stop(I2C_TypeDef* I2Cx);
void Delay(int nCount);

int main(void)
{  
         RCC_Configuration();
   GPIO_Configuration();
   I2C_Configuration();        
   while(1)
         {                  int data=0;
                      I2C_start(I2C1,0x300;c2--);
        };
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
rnr15483586
1楼-- · 2019-07-15 18:27
 精彩回答 2  元偷偷看……
Jaionm
2楼-- · 2019-07-15 23:57
学习了。。。哈
sgaasag
3楼-- · 2019-07-16 02:17
maruidiyi 发表于 2018-10-23 15:23
ST的IIC为了规避专利,采用了独特的设计,楼主做硬件IIC时要严格遵守ST的设计思路才行,要不然容易出错。我花了一周的时间才把硬件IIC搞定,下面给你提供已经调试成功的两个函数作为参考:
如果你把这两个函数理解好了,后面页写函数和随机写函数都能搞定了。
void I2C_Write_OneByte(unsigned char Write_Addr,unsigned ch ...

在配置I2C的接口地址时,向I2C_OAR1寄存器写的地址是自己随便确定的吗?只要保证与I2C设备不重复即可?

一周热门 更多>