共2条
1/1 1 跳转至页
问
从一个CAN发送到另一个CAN,设置为500Kbps,发送50帧数据,结果就只接受到了13帧。丢了3/4数据。我想可能是cpu太快了,CAN发送的数据太慢了,加了睡眠,每发一帧,睡一秒,就可以正确接受。但是速度太慢了。请教各位如何解决这个问题?
答 1:
re首先确保这50帧是不是真正发送出去了,发送前应事先判断发送状态,只有在发送缓冲可写入的时候才能写入发送信息,其次,接收节点的处理速度要跟得上发送节点,要不然也会丢帧
答 2:
re谢谢! 发送数据前我有判断发送缓存区的状态。
我的接收函数是:
for(;;)
if(CAN_read(CAN_IR)&0x01==0x01)
{从rx中读入8个数据;
}
会不会是因为接收时读CAN寄存器的值太慢引起的?
我的接收函数是:
for(;;)
if(CAN_read(CAN_IR)&0x01==0x01)
{从rx中读入8个数据;
}
会不会是因为接收时读CAN寄存器的值太慢引起的?
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图四被打赏50分 | |
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 |