新手关于串口通信的问题,求教
我想让电脑串口发送数据,单片机识别此数字是几,然后显示到数码管上。可是把接受到的数字定义为 intreceived 或 char received 都不行,怎么定义?还是存在其他问题
#include<reg52.h>
sbit a=P2^2;
sbit b=P2^3;
sbit c=P2^4;
typedef unsigned char u8;
typedef unsigned int u16;
u8 received;
u8 x;
u8 code smg[]={0x3f, 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,
0x7d , 0x07 , 0x7f, 0x6f };
void play(u16 i)
{a=0;b=0;c=0;
P0=smg;
}
void chuankou()
{
TMOD=0X20;
TR1=1;
TH1=0XF3;
TL1=0XF3;
PCON=0X80;
EA=1;
ES=1;
SCON=0X50;
}
void chuan() interrupt 4
{
received=SBUF;
x=received;
RI=0;
play(x);
}
main()
{chuankou();
while(1);
}
你的晶振是12MHz吧,使用的波特率为2400加倍至4800,所以电脑的串口助手一定要设置波特率为4800,这是前提,然后你要传的是数值,所以要传hex而不是txt,最后,play()函数的参数最好要用char或u8,别用u16。 神奇 发表于 2019-8-25 21:51
你的晶振是12MHz吧,使用的波特率为2400加倍至4800,所以电脑的串口助手一定要设置波特率为4800,这是前提 ...
哦哦,其他都对 我用u8也不行,你原来做过类似的吗? 你用的什么板子,上个图看看 神奇 发表于 2019-8-25 22:15
你用的什么板子,上个图看看
普中的51,按理说我的程序应该对的吧,改成u16也不行
我听同学说用读数据的函数。。。
普中有好几个型号,到底是哪一个 神奇 发表于 2019-8-25 22:29
普中有好几个型号,到底是哪一个
HC6800-ES V2.0 80C51/89C51 神奇 发表于 2019-8-25 22:29
普中有好几个型号,到底是哪一个
这个传图好麻烦 不截个图,谁知道你电脑串口这边发的数据对了没有
页:
[1]