完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
公司一款产品的研发项目需要用到I2C通信,采用了STM8S103F3的片子。 一开始就遇到了I2C通信问题。采用的是中断法。 配置初始化后主机模式 在发送起始位后,能进入中断按照给定的顺序发送数据。 但在从机模式时对主机发送的地址无应答,进入不了中断。 地址设置和主机端的发送地址一致,应答位也设置了。用示波器和逻辑分析仪观察时序没有任何问题。大致的初始化程序如下。
I2C_CR1 = 0X00; I2C_FREQR //与主机相同,忘记是啥了 I2C_CCRL //与主机相同,忘记是啥了 I2C_CCRH //与主机相同,忘记是啥了 I2C_TRISE = 0X02;//与主机相同 I2C_OARL = 0XA8;//与主机发送地址一致 I2C_OARH = 0X40; I2C_CR2 |= 0X04; I2C_ITR = 0X07; I2C_CR1 = 0X01; 就这个配置,切换到主机模式访问24C02正常。 但从机模式时,对另一块做主机的板发送的地址无应答。 百思不得其解。试着将主机端的寻址地址从0到最大值逐一的试了一个遍也没效果。 现求助大神有没有解决的办法 |
|
相关推荐
2个回答
|
|
|
|
|
|
在STM8S103F3的I2C从机模式下,无ACK的原因可能有以下几点:
1. 地址不匹配:确保从机的地址与主机发送的地址完全一致。检查地址寄存器的设置,确保它们与主机端的地址相匹配。 2. 时钟频率不一致:确保I2C从机和主机的时钟频率相同。检查I2C_FREQR、I2C_CCRL和I2C_CCRH寄存器的设置,确保它们与主机端的时钟频率相匹配。 3. 从机模式未正确配置:确保从机模式已正确配置。检查I2C_CR1寄存器的设置,确保已启用从机模式。 4. 中断配置问题:检查中断配置,确保已启用相应的I2C中断,并在中断服务程序中正确处理中断。 5. 硬件连接问题:检查I2C总线的硬件连接,确保SDA和SCL引脚正确连接,没有短路或断路。 6. 软件问题:检查初始化程序和中断服务程序,确保没有逻辑错误或遗漏。 7. 外部干扰:检查周围环境是否有电磁干扰,这可能会影响I2C通信。 8. 硬件故障:如果以上方法都无法解决问题,可能是STM8S103F3芯片本身存在硬件故障。 为了解决这个问题,你可以尝试以下步骤: 1. 仔细检查地址寄存器、时钟频率寄存器和中断配置。 2. 使用逻辑分析仪或示波器检查I2C总线上的信号,确保它们与预期一致。 3. 检查硬件连接,确保没有短路或断路。 4. 在中断服务程序中添加调试信息,以便更好地了解程序的执行情况。 5. 如果可能,尝试使用另一块STM8S103F3芯片进行测试。 希望这些建议能帮助你解决问题。如果问题仍然存在,请提供更多详细信息,以便进一步分析。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1621 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1546 浏览 1 评论
980 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
686 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1599 浏览 2 评论
1867浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
648浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
518浏览 3评论
534浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
506浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 18:18 , Processed in 0.653753 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号