单片机串口中断以及消息收发处理——对接受信息进行判断实现控制

本文档详述了一次使用51单片机通过定时器2实现串口1通信的实验,目的是验证串口接收特定字符串的实时性和准确性。实验中,通过设置不同的数据帧间隔,测试了串口在不同速率下的数据判断能力。在1000ms间隔发送'hello'、'yzh666'、'awaqaer'时,取得了满意的效果。然而,当发送间隔小于300ms时,出现了数据混淆的问题。通过优化中断处理和引入“喂狗”机制,解决了这一问题,确保了在较短间隔下也能准确判断接收到的消息。

目录

本次自己捣鼓的问题:(自己摸索的一个实验)

实现效果:

初步基础:

实现步骤

实验结果:

主要代码


本次自己捣鼓的问题:(自己摸索的一个实验)

以51的单片机来说,用定时器2作为串口1来进行串口实验,检验以下的数据(任意数据)

"hello"--1

"yzh666"--2

"aqawaer"--3

实现效果:

单片机收到这些消息字段后进行判断并在数码管的第一位显示是几号消息,顺便看看串口的实时性如何。

初步基础:

        串口的波特率有很多种,单位是多少位每秒,以9600bps为例,我认为9600位每s,若是无校验8位数据位,一位起始位和一位停止位而构成一个数据帧(共10位),

起始位:1
数据位:8
停止位:1
校验位:0

那么每s能接受960个数据包,每八位为一个字节,那就是没s能接受960个字节(也就是一个char 或者是unsigned char型的数据),那么相当于每1.041ms接受一个字符.

串口中断:每次发送或者接受数据后TI或RI置为1则触发中断(硬件置位),故触发中断后需要软件复位(置为0),优先级低于定时器中断。串口中断一般用于接受数据。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值