找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1034|回复: 14
打印 上一主题 下一主题
收起左侧

单片机串口中断函数,函数体空着也可以实现发送接收功能吗?

  [复制链接]
跳转到指定楼层
楼主
ID:299910 发表于 2023-6-20 09:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
功能:51单片机的串口1中断处理函数        
**************************************************************************/
void UART1(void) interrupt 4  // 串行口1中断函数  
{ ; }

这样写的作用是什么?运行结果会怎么样?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:404160 发表于 2023-6-20 10:40 | 只看该作者
这样写是“框架”的意思。虽可以中断,但SBUF里的数据没有转存到你需要的地方
回复

使用道具 举报

板凳
ID:1080935 发表于 2023-6-20 15:07 | 只看该作者
可以,但每次收发完一个字节都会到中断里来一下,如果不及时处理会一直进中断,甚至出不来,简单的测试可以,不建议这么做。不用中断可以把中断关掉,这个函数存在也没问题的。
回复

使用道具 举报

地板
ID:624769 发表于 2023-6-20 18:32 | 只看该作者
作用是占位。

会在  0023H  处写入一个字节:  32H
回复

使用道具 举报

5#
ID:213173 发表于 2023-6-20 21:42 | 只看该作者
估计是预留,如果开了串口中断而没有中断函数,程序会出错。最好注释掉,有用到时再开。
回复

使用道具 举报

6#
ID:1085253 发表于 2023-6-20 21:51 | 只看该作者
不能,会卡在这里,没有中断返回语句
回复

使用道具 举报

7#
ID:401564 发表于 2023-6-20 22:58 | 只看该作者
没试过会怎么,也懒得去试,你自己可以试一下
个人认为为卡死
如果中断已经开启了,中断标志位是必须要软件清除的,这是8051的基础知识
回复

使用道具 举报

8#
ID:277550 发表于 2023-6-21 00:09 | 只看该作者
中断只是处理的一个方法,比较方便、也比较可靠。如果单片机足够快,可以用查询的方法处理的。
回复

使用道具 举报

9#
ID:1034262 发表于 2023-6-21 09:49 | 只看该作者
经常看到有人回“一楼占位”,就是这个意思。
回复

使用道具 举报

10#
ID:299910 发表于 2023-6-21 13:32 | 只看该作者
感谢各位大神,向各位学习了。
回复

使用道具 举报

11#
ID:1085350 发表于 2023-6-21 14:07 | 只看该作者
只是中断,没有实际数据
回复

使用道具 举报

12#
ID:1084404 发表于 2023-6-21 17:17 | 只看该作者
串口中断处理函数是一种特殊的函数,它在串口接收和发送数据时自动调用。在使用串口进行通信时,我们需要编写中断处理函数来处理接收和发送数据。
在接收数据时,中断处理函数首先判断接收缓冲区是否有数据可读。如果有数据可读,则将数据从缓冲区中取出并进行处理。处理完后,如果缓冲区还有数据可读,则继续处理,直到缓冲区中的数据全部处理完毕。
在发送数据时,中断处理函数首先判断发送缓冲区是否有空闲空间可用。如果有空闲空间可用,则将待发送的数据写入缓冲区中,并将发送指针加1。如果发送缓冲区已满,则等待下一次中断处理函数的调用。
第 1 页
需要注意的是,在编写中断处理函数时,我们需要考虑到数据的稳定性和可靠性。因为数据是通过串口进行通信的,如果数据传输出现错误或丢失,将会对系统产生严重影响。因此,我们需要合理地处理数据,保证数据的传输稳定和可靠。
总之,串口中断处理函数是串口通信中不可或缺的一部分。通过编写合理的中断处理函数,我们可以有效地处理串口接收和发送数据,保证系统的稳定性和可靠性。
回复

使用道具 举报

13#
ID:299910 发表于 2023-7-13 10:55 | 只看该作者
2728999742 发表于 2023-6-21 17:17
串口中断处理函数是一种特殊的函数,它在串口接收和发送数据时自动调用。在使用串口进行通信时,我们需要编 ...

谢谢!谢谢!的确想您说的那样,中断函数内的数据处理部分没写好,数据会丢失或者说根本没有发送成功,我想连续发送24位数据,可返回电脑的总是不一样。
回复

使用道具 举报

14#
ID:299910 发表于 2023-7-13 10:57 | 只看该作者
188610329 发表于 2023-6-20 18:32
作用是占位。

会在  0023H  处写入一个字节:  32H

为什么是32H?
回复

使用道具 举报

15#
ID:57657 发表于 2023-7-13 12:12 | 只看该作者
里面最好加一个 _nop_(); 否则编译器可能会优化掉。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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