登录
|
注册会员
开启辅助访问
设为首页
收藏本站
扫一扫关注官方微信
论坛
BBS
M币充值
M currency prepaid phone
M币获取
附件中心
搜索
search
全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
MCU资讯论坛
»
论坛
›
单片机论坛
›
51单片机论坛
›
关于51单片机处理串口所接收到的数据的判断
更新自动建库工具PCB Footprint Expert 2023.13 Pro / Library Expert 破解版
关于51单片机处理串口所接收到的数据的判断
[复制链接]
2040
0
100***
新手上路
发表于 2023-6-11 21:33:39
|
查看全部
|
阅读模式
本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要
登录
才可以下载或查看,没有帐号?
注册会员
x
本帖最后由 100202 于 2023-6-11 21:38 编辑
原本使想要判断多个字节的数据,但是在处理一个字节的数据时就发生了错误(串口助手和
单片机
波特率均为9600,且数据位停止位校验位均为81N)
(1)用8个led显示接收到的数据,刚开始什么也没发送,但是LED灯却显示接收到了7F(01111111)
(2)当我用串口助手发送数据时。若判断接收到的数据是否为0x51,则会失败,且显示为FF(如果添加延时函数,会显示小段时间的D1,然后自动变成FF)
当用串口助手发送0xA5时,接受到的数据正确且正常显示A5,LED1也在正常亮起
在尝试过后发现似乎如A8,FA如此字母开头的字节都可以识别正确,但是数字很多都不行
以下是我的程序
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led0 = P0^0; //两个LED灯判断接收到的数据
sbit led1 = P0^1;
uchar num1,flag;//读取SBUF
void UART_init()
{ //TR1=0;
TMOD =0x20; //T1工作模式2 8位自动重装
TH1 = 0xFD;
TL1 = 0xFD; //0xfd波特率9600。
ET1 = 0;
IE=0x90; //启动定时器1
TR1 = 1; //启动T1定时器
PCON =0x00; //若0x80 SMOD置1,波特率加倍;但此时的波特率为9600;
REN=1; //看似无用实则不可缺失
SCON = 0x50; //串口允许接收
//SM0 = 0;SM1 = 1;
EA = 1; //开总中断
ES = 1; //串口中断打开
}
void main()
{ flag = 0;
UART_init();
while(1)
{ if(flag == 1)
{
switch (num1)
{ case 0x51: //若接收到的是0x51,则LED0亮,下同
led0=0; break;
case 0xA5:
led1=0; break;
}
}
// else led1=1;
}
}
void UART() interrupt 4 //串口中断函数
{ //EA=0;
if(RI==1) //检测是否接收完成
{RI = 0;
P1=~SBUF;
num1=SBUF; //P1有8个共阳极LED灯,方便判断接收到的数据。SBUF给num1;
flag = 1;
}
//EA=1;
}
求告知问题出在哪里以及解决方式,感谢万分
初学者
,
单片机
相关帖子
云龙51单片机视频教程,目前国内公认的最好的入门视频教程
求助!TX-1C开发板51串行中断 if 语句无法执行问题(看起来很简单,但不知为何总调不过去
求助
国产单片机推荐:无锡矽杰微电子XC8P8600
51单片机(STC8051U34K64)_RA8889_SPI4参考代码(v1.3)
51单片机(STC8H8K64U/STC8051U34K64)_RA8889_8080参考代码(v1.3)
51单片机(STC8H8K64U/STC8051U34K64)_RA8889_HW_SPI4参考代码(v1.3) 硬件SPI方式
单片机驱动彩屏最简方案:单片机_RA8889最小开发板驱动控制TFT彩屏介绍(一)
举报
回复
返回列表
*
滑块验证:
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册会员
本版积分规则
发表回复
回帖后跳转到最后一页
回复
转播
评分
分享
打开支付宝扫一扫,最高立得1212元红包
搜索
本版
帖子
用户
热搜:
传感器
51串口程序
电子管放大器
夾式電表
夾式電流
Mentor论坛
打印机
版块推荐
百宝箱
My 布拉格
无边框Z9
Z9Max
Z9mini
nubia动态
问题 & 建议
资源分享
爱拍
同城会
牛仔生活
查看论坛所有版块>>
每日签到
论坛任务
摄影技巧
跳蚤市场
互助问答
论坛导读
申请内测
红包中心
每日摇一摇
活动中心
网站地图
官方旗舰店
图文热点
点阵液晶屏驱动LCD段码驱动IC-VK1072B SOP2
产品品牌:永嘉微电/VINKA 产品型号:VK1072 封装形式:SOP28 概述 VK1072B是一
NY8B062F
105行超出内存,RAM为128字节,有大神帮忙看看吗?
俄罗斯的6H23+6П43推挽电路机器欣赏
AP3215 8-150V 外围简单 宽输入 电压降压BU
产品描述 AP3215是 一系列外围电路简洁的宽输入电压降压BUCK 恒压恒流驱动器 ,适用
VK1056Q QFN246是一个点阵式存储映射的LCD
产品品牌:永嘉微电/VINKA 产品型号:VK1056Q 封装形式:QFN24L 概述 VK1056Q是
更多
精华推荐
AP510X 单路低压差线性恒流芯片 LED手电筒
点阵液晶屏驱动LCD段码驱动IC-VK1072B SOP2
NY8B062F
俄罗斯的6H23+6П43推挽电路机器欣赏
AP3215 8-150V 外围简单 宽输入 电压降压BU
VK1056Q QFN246是一个点阵式存储映射的LCD
一个名为伯努瓦(Gislain)的人,用了3年时
AP2121太阳能草坪灯驱动芯片
更多
社区学堂
点阵液晶屏驱动LCD段码驱动IC-VK1072B
NY8B062F
点阵液晶屏驱动LCD段码驱动IC-VK1072B SOP2
产品品牌:永嘉微电/VINKA 产品型号:VK1072 封装形式:SOP28 概述 VK1072B是一
NY8B062F
105行超出内存,RAM为128字节,有大神帮忙看看吗?
俄罗斯的6H23+6П43推挽电路机器欣赏
更多
客服中心
QQ:187196467
服务时间:周一至周日 8:30-20:30
在线客服
客服微博
产品咨询
售后中心
关注我们
关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
QQ:187196467
周一到周日 8:30-22:00 (全年无休)
7 x 24小时在线客服
手机版
Powered by
MCUZX!
X3.4 © 2008-2015
MCU资讯论坛
版权所有
京ICP备18035221号-2
客服QQ: 187196467
技术支持:
MCU资讯论坛
|
网站地图
快速回复
返回顶部
返回列表