Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
还是会报rxbuff full问题,这是我slave相关配置,使用dma通道,另外YT配置优先级数字是低,优先级高,还是数字高,优先级高
数字越低,优先级越高
把I2C slave通道的中断优先级数字改小
优先级数字改小后,还是会进RXbuff full
排查下I2C slave 中断是否有被抢占?
没有发现有抢占的情况, 这是我作为slavecallback 的 接受到的枚举类型,从接受的开始,我就打印事件类型,有4,3,2事件类型,对应STOP、RX TX,奇怪的是没有0出现,也就是rxfull,但我的打印会出现。
发送端数据超出接收配置的数据长度了吗? RxFull事件发生后也可以更新buff通过这个API CddI2c_PrepareSlaveBuffer
长度没有超出 ,我现在的操作是,在I2C_SLAVE_EVENT_TX_REQ事件中调用CddI2c_PrepareSlaveBuffer,准备buff,在I2C_SLAVE_EVENT_STOP事件中,读取RXBUFF,处理数据,(I2C_SLAVE_EVENT_TX_REQ事件也同样调用CddI2c_PrepareSlaveBuffer传送数据,但BUFF不同)
RXfull 问题解决了,现在slave模式下会出现长数据收不到的情况
不要在中断里面加打印。如果你接收的长度没有超出I2C_EVENT_RX_REQ_SLAVE事件回调的设定值,是不会触发I2C_SLAVE_EVENT_RX_FULL事件的。请再次检查用例
telinjia 兄弟,你是怎么解决的? 我SDK,I2c从机加了中断优先级之后,也是会一直进
Frank 大哥,我也遇到了SDK I2C Slave 模式 一直进I2C_SLAVE_EVENT_RX_FULL的情况。刚发布了帖子
lrx9695 你用了DMA吗?
Frank 我没用DMA,就想着用中断
这个回调里面填写的接收数据的长度和master实际发送的长度是一致的吗?如果slave接收数据的长度<master实际发送的数据长度,才会触发I2C_SLAVE_EVENT_RX_FULL事件
Frank 这里是设置了511字节,主机发送数据最大是255字节。 当我把INT_SYS_InstallHandler注释了就不会出现这种问题了
帮助没办法联网的电脑使用YCT
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...