|
STM32L4 通过I2C方式组成主机——从机通信(主机从机都是stm32L431),主机给从机第一次发送消息能够成功,但是从机返回信息就会失败。 主机给从机第一次发送消息后,不让从机响应。主机第二次发送信息时失败,此时从机只能接收第二次发送信息的第一个中断,然后就卡死。 代码是有Cube MX生成,调用标准库函数。 主机发送及接收使用polling方式,从机接收使用中断触发,从机发送使用Polling方式。 |
配置CubeMX后(STM32H723VGT6),自动生成的代码,编译报错
smt32l432kcu6 TIM_DMA 例程,TimHandle.Init.RepetitionCounter = 3; 应该输出4个波形,但是启动时第一次会输出8个波形后面才会正常输出4个波形
官网注册问题
motor profiler 链接nucleo 476rg时提示如图所示的通信错误,此时未连接IHM08M1,电脑上有476RG产生的串口,STLINK,U盘标识
基于STM32F103的HAL库实现USB(HID) OTA升级
STM32L496要加热才能运行
vscode的cubemx插件看不了livewatch
怎么将keil工程更换为vscode工具链?
Nucleo STM32H723ZG 以太网 用CubeMX配置完卡在在mem_init()为什么?
stm32cubemx “enter myST account information”无反应,无法下载软件包
微信公众号
手机版
楼主应该明确一下I2C通讯的设备型号,从I2C协议上理论分析,可能是通讯协议不正确导致。可以通过示波器或者逻辑分析仪进行波形分析,可以解决问题。
拿逻辑分析仪看看有没有ASK
找到原因了:主机发送后,没有进行等待IIC始终波形,就去监听接收了。主机发送后,延时500ms后,能够接收到从机数据了。
但是只能接收一次,再次读取就会出现error。又困扰到我了
1.进中断后、处理数据之前,先处理异常标志(我的工程设成异常不产生中断)
2.开销一个定时器,超时后重新处理收发。
100k传输,0.5米传输线,貌似总会有错,甚至不产生中断。
也许打开异常中断就可以省个定时器,你可试试,分享一下结果。