单片机通过串口发送0x00,为啥串口接收后显示为80呢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单片机通过串口发送0x00,为啥串口接收后显示为80呢相关的知识,希望对你有一定的参考价值。
是不是十六进制数据发送前还要处理吗
就是说我通过串口助手发送00给单片机,单片机接收后通过串口发送,串口助手接收后应显示为00,为什么显示为80呢
#include <reg52.h>
#define uint unsigned int;
#define uchar unsigned char;
#define ufloat unsigned float
uint flag,a,b;
void main()
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
SM0=0;
SM1=1;
TR1=1;
REN=1;
ES=1;
EA=1;
while (1)
if (flag==1)
flag=0;
ES=0;
SBUF=P2;
while(!TI);
TI=0;
ES=1;
void ser() interrupt 4
RI=0;
P2=SBUF;
flag=1;
TH1=0xfd;
TL1=0xfd;
SM0=0;
SM1=1;
TR1=1;
REN=1;
ES=1;
EA=1;
这几个的顺序调整下。
调整成
TMOD=0x20;//T1计数器工作在模式2
TH1=0xfd;//T1初始值装载,波特率为9600;
TL1=0xfd;
TR1=1;//启动T1
SM0=0;//编程SCON寄存器,使其工作在工作方式1中
SM1=1;
REN=1;//允许接收
ES=1;//串口中断开
EA=1;//总中断开 参考技术D 你的晶振是不是不对,改成11.0592
STM32 串口为啥只能接收发送的部分数据
程序BUG,或者接受缓冲的数组变量满了,不过基本上可以确定是程序问题 参考技术A 这个跟stm32没有关系,跟你的程序有关系。以上是关于单片机通过串口发送0x00,为啥串口接收后显示为80呢的主要内容,如果未能解决你的问题,请参考以下文章