|
我让一块 F407主机向另一块 F070从机发送 1 个字节的数据。 我在 SDA 和 SCL 引脚上外接了 4.7K 上拉电阻。出现错误,具体如下: 执行主机端以下代码后,得到错误码 32: ret = HAL_I2C_IsDeviceReady(&hi2c1, 30,1, 1000); if ( ret != HAL_OK) { uint32_t error_code = HAL_I2C_GetError(&hi2c1); printf("Error %d\r\n", error_code); } 执行主机端以下代码后,得到错误码 4: ret = HAL_I2C_Master_Transmit(&hi2c1, 30, TX_Buffer, 1, 1000); //最长1秒发送时间 if ( ret != HAL_OK) { uint32_t error_code = HAL_I2C_GetError(&hi2c1); printf("Error %d\r\n", error_code); } 貌似是设备地址配置错误或者其他类似的简单问题导致的。 |
STM32L562DK探索板——串口通讯重定向出错
Error[Lp015]: section placement failure内容占用溢出
STM32与JTAG电平不匹配
STM32F7由USB FS读写QSPI flash
STM8L050J3使用SWIM下载方式,无法下载,总是报错
谁知道STM32用STLINK下载的时候,不连接3V3不能下载
用SDRAM刷ltdc有白线会出现是啥情况
在keil中仿真程序时,结构体变量出现错乱
异步传输中的奇偶帧位
什么是 GPIO 事件?如何将事件关联到外设
微信公众号
手机版
可以通过示波器看一下。顺便检查一下发出的地址和从设备配置的地址是否一致。
从示波器看时序么?
逻辑分析仪更适用
从机I2C的地址是否正确?从机回应了信息么?
从示波器上看更直接,顺便看看波形是否合适。有的时候外部电阻电容不合适导致波形异常也能看出来。
数据短,很容易看到第九个信号是否是ACK信号。
你确认下,设备地址给对没有。
使用HAL_I2C_IsDeviceReady()函数时,地址数据参数应该是实际设备地址左移后的值。