OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5141|回复: 2

求助一个485中断遇到的一个小问题 ,但是找不到问题原因出在哪

[复制链接]

31

主题

69

帖子

0

精华

初级会员

Rank: 2

积分
140
金钱
140
注册时间
2021-3-12
在线时间
49 小时
发表于 2022-6-6 23:27:34 | 显示全部楼层 |阅读模式
5金钱
我在用一块stm32F4的开发板自己写485中断函数的时候遇到一个问题。中断函数按照普遍485的接收中断一样,在我发送1个字节时,返回的字节也是我所发送的字节,但是在我发送2个或者两个以上的字节是,开始出现字节混乱现象,找不到原因在哪,求大佬指点一下! QQ图片20220606232533.png QQ图片20220606232434.png QQ图片20220606232527.png QQ图片20220606232705.png

最佳答案

查看完整内容[请看2#楼]

485是半双工,你这是冲突了。建议加个计时,一段时间内未收到数据才能发送。或者加一个帧结束的判断,收完一帧后才能发送。 例如: int t; 串口中断() { 接收数据; t=1000; } 主循环() { if(t) { t--; } else { 可以发送数据; } delay(); }
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

3344

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8463
金钱
8463
注册时间
2020-5-11
在线时间
3904 小时
发表于 2022-6-6 23:27:35 | 显示全部楼层
本帖最后由 LcwSwust 于 2022-6-7 11:04 编辑

485是半双工,你这是冲突了。建议加个计时,一段时间内未收到数据才能发送。或者加一个帧结束的判断,收完一帧后才能发送。
例如:
int t;
串口中断()
{
接收数据;
t=1000;
}
主循环()
{
if(t)
{
  t--;
}
else
{
  可以发送数据;
}

delay();
}

专治疑难杂症
回复

使用道具 举报

2

主题

592

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1458
金钱
1458
注册时间
2019-7-28
在线时间
137 小时
发表于 2022-6-7 10:21:04 | 显示全部楼层
帮顶                        
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 15:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表