请教原子哥 关于串口接收的问题

2019-10-16 04:38发布

为什么进一次中断只能接收一个字符? 多次接收会是同一个字符。
我觉得一次接收完成后,接收标志位清零,那么这个字节的接收应该完成了;
再执行下一次接收,应该是下一个字符了啊。

新手求指点!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
25条回答
靐靐靐
1楼-- · 2019-10-18 02:58
萝卜头 发表于 2016-12-5 14:21
之前用的,亲测,可用,当前你也可以把65000改的更短一些,具体多少合适没有去试过、算过

看了你这个程序我大概明白是怎么回事了。不过这个程序进一次中断,无论接收几个字节都要判断65000次,感觉好浪费呀
萝卜头
2楼-- · 2019-10-18 08:49
靐靐靐 发表于 2016-12-5 14:32
看了你这个程序我大概明白是怎么回事了。不过这个程序进一次中断,无论接收几个字节都要判断65000次,感 ...

没有啊,,那个只是为了给接收下一个字符留够足够的时间啊,时间的时间还是接收下一个字符的时间啊,就只有最后一个字符会等到65000延时完成
密耳
3楼-- · 2019-10-18 10:05
 精彩回答 2  元偷偷看……
萝卜头
4楼-- · 2019-10-18 11:40
靐靐靐 发表于 2016-12-5 14:32
看了你这个程序我大概明白是怎么回事了。不过这个程序进一次中断,无论接收几个字节都要判断65000次,感 ...

说白了就是进入中断后用查询的方式去接收字符,,,但是又不能一直查询,,,要是在一定时间内查询不到就立马退出中断
萝卜头
5楼-- · 2019-10-18 14:03
密耳 发表于 2016-12-5 14:35
那就赐教下,不是吐槽,,中断程序你这样处理就行了,,至于接收的数据怎么处理,那是另外一回事...... ...

哦哦,,我懂你的意思,,就是实际的处理程序不会放在中断里面,在中断里面待的时间越短越好,,我没有截出下面你都猜到了,,厉害哦,,主要是这个程序是我自己写的,针对我们项目上的,也没有用操作系统,为了方便能立马响应我的命令,我就放到了中断里面来处理,,裸机循环一次要跑十来分钟,。。另外就是处理程序采用的if{}else if()的形式,不会花很多的时间的,一样能快速的跳出中断
密耳
6楼-- · 2019-10-18 17:32
萝卜头 发表于 2016-12-5 14:42
哦哦,,我懂你的意思,,就是实际的处理程序不会放在中断里面,在中断里面待的时间越短越好,,我没有截 ...

其实,串口接收,发送,看似一个简单的程序,很多人不太在意,但如果遇上大数据量,数据流,或者诸多指令。程序写的不好,会很容易丢包,卡死、、可能是你们只是简单学习下,或项目数据量小,没有体会到而已、、、

一周热门 更多>