欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
萌新求助,為什么單片機串口接收的都是亂碼?
[打印本頁]
作者:
落十一s
時間:
2021-3-17 20:51
標題:
萌新求助,為什么單片機串口接收的都是亂碼?
#include "STC15F2K60S2.H"
#define Lenth 64
sbit k1=P1^0;
typedef unsigned char u8;
u8 xdata RX1_Buffer[Lenth];
u8 xdata TX1_Buffer[Lenth];
u8 TX1_c;
u8 RX1_c;
u8 TX1_write;
u8 TX1_read;
bit TX1_Busy;
void TX1_write2buff(u8 dat) //寫入發(fā)送緩沖,指針+1
{
TX1_Buffer[TX1_write] = dat; //裝發(fā)送緩沖
if(++TX1_write >=Lenth) TX1_write = 0;
if(TX1_Busy == 0) //空閑
{
TX1_Busy = 1; //標志忙
TI = 1; //觸發(fā)中斷
}
}
void PrintString1(u8 *puts)
{
for (; *puts != 0; puts++)
TX1_write2buff(*puts); //遇到停止符0結束
}
void main()
{
TX1_Busy=0;
RX1_c=0;
TX1_c=0;
TX1_write=0;
TX1_read=0;
SCON = 0x50; //
AUXR |= 0x01; /
AUXR |= 0x04; //
T2L = 0xE0; //
T2H = 0xFE; //
AUXR |= 0x10; //
REN = 1; //允許接收
ES = 1; //允許中斷
EA = 1; //允許全局中斷
while(1)
{
if(k1==0)
{
PrintString1("你好世界\n\r");
}
}
}
void UART_1() interrupt 4
{
if(RI)
{
RI=0;
RX1_Buffer[RX1_c]=SBUF;
if(++RX1_c>=Lenth) RX1_c=0;
}
if(TI)
{
TI=0;
if(TX1_read!=TX1_write)
{
SBUF=TX1_Buffer[TX1_read];
if(++TX1_read>=Lenth) TX1_read=0;
}
TX1_Busy=0;
}
}
Ps:波特率沒選錯,9600,
作者:
zhangxiaozi
時間:
2021-3-18 01:15
上述串口設置是在11.0592M的晶振設置,看看你的單片機是不是選的11.0592
作者:
munuc_w
時間:
2021-3-18 08:37
如果通信正常只是顯示亂碼的話:1.檢查通信兩機的波特率;
2.注意ASCII碼和HEX碼。
作者:
人人學會單片機
時間:
2021-3-18 09:29
串口1打印程序 可以打印3個十六位的變量 波特率9600
http://m.raoushi.com/bbs/dpj-201660-1.html
串口發(fā)送 不需要while死等 串口接收執(zhí)行軟件復位
http://m.raoushi.com/bbs/dpj-200927-1.html
作者:
湖南
時間:
2021-3-19 23:49
串口波特率是否計算正確
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1