[技术问答]

N76E003单片机串口发送中断问题

[复制链接]
1178|13
手机看帖
扫描二维码
随时随地手机跟帖
ipman|  楼主 | 2019-5-20 15:30 | 显示全部楼层 |阅读模式
查单片机资料寄存器EIE1的bit0决定开启或关闭 发送TI_1或接收RI_1中断。
目前碰到一个问题:如果我接收和发送都采用中断方式处理,那么,接收中断肯定需要持续开启,发送在有需要的时候才启动中断通过中断函数读取缓冲区方式发出,其他单片机的发送和接收中断使能都是独立的,这个单片机无法实现分开管理?
为何需要中断方式发送?因为大数据发送不会阻塞主进程。
希望碰过类似应用的前辈指点一二,谢谢!

使用特权

评论回复
BigLeo8| | 2019-5-20 16:58 | 显示全部楼层

使用特权

评论回复
jasontu| | 2019-5-21 18:05 | 显示全部楼层
这个单片机无法实现分开管理?为何需要中断方式发送?
=>51單片機,天生的設計
TI是告知資料已傳送結束,因為硬體只有一層BUFFER, 怕資料還沒有送完,蓋到原先資料,可以當作TX BUFFER檢查是否已送出用(TI=1)。
RX比較簡單,是資料從RXD進來,RI中斷會發生。

使用特权

评论回复
xinpian101| | 2019-5-21 23:24 | 显示全部楼层
不中断也可以发送啊。

使用特权

评论回复
21mengnan| | 2019-5-22 22:45 | 显示全部楼层
几个例子都是中断?

使用特权

评论回复
21mengnan| | 2019-5-22 22:45 | 显示全部楼层
printf也是串口啊,没有中断

使用特权

评论回复
评论
lihui567 2019-5-23 19:19 回复TA
这个没有中断 
ipman|  楼主 | 2019-5-22 23:25 | 显示全部楼层
xinpian101 发表于 2019-5-21 23:24
不中断也可以发送啊。

while判断 TI? 这样不就卡住了吗?4800bps发送50字节好像时间开销不少啊?

使用特权

评论回复
ipman|  楼主 | 2019-5-22 23:25 | 显示全部楼层
xinpian101 发表于 2019-5-21 23:24
不中断也可以发送啊。

while判断 TI? 这样不就卡住了吗?4800bps发送50字节好像时间开销不少啊?

使用特权

评论回复
ipman|  楼主 | 2019-5-22 23:25 | 显示全部楼层
21mengnan 发表于 2019-5-22 22:45
printf也是串口啊,没有中断

while判断 TI? 这样不就卡住了吗?4800bps发送50字节好像时间开销不少啊?

使用特权

评论回复
天灵灵地灵灵| | 2019-5-23 19:55 | 显示全部楼层
一般不会都这么巧合卡住吧,你试的很容易卡住?

使用特权

评论回复
天灵灵地灵灵| | 2019-5-23 19:55 | 显示全部楼层
而且串口的发送和接收都是分开的两条线,应该不会互相影响的。

使用特权

评论回复
天灵灵地灵灵| | 2019-5-23 19:56 | 显示全部楼层
虽然看着是一个寄存器收发,只是名字相同而已,对该寄存器读是用的输入的寄存器,读该寄存器写,实际上用的是发送寄存器,实际上物理上是两个地方。

使用特权

评论回复
奇立电源| | 2019-5-23 22:12 | 显示全部楼层
用队列发送,主程序检测队列不为空就写一个字节触发中断,然后就可以中断发送队列所有数据,注意要做一个串口发送空闲标志

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

89

主题

550

帖子

4

粉丝