ZKX's LAB

自己编写STC15F2K60S2函数之串口1通信初始化 stc15串口自动地址

2020-10-01知识17

单片机stc15f408ad怎么把上位机串口发来的一串四字节数据分别负值给p1到p4四个端口?起始 单片机中设置4字节接收缓存,假设为rec_buf[4]在串口接收程序中,先将每次收到的字节依次存储到rec_buf中,等接收完成,再将rec_buf[0]、rec_buf[1]、rec_buf[2]、rec_buf[3]分别赋值给P1~P4口。假设串口波特率为9600bps,晶振为11.0592MHz,则串口初始化代码如下:void UartInit(void)/9600bps@11.0592MHz{SCON=0x50;8位数据,可变波特率AUXR&0xBF;定时器1时钟为Fosc/12,即12TAUXR&0xFE;串口1选择定时器1为波特率发生器TMOD&0x0F;设定定时器1为16位自动重装方式TL1=0xE8;设定定时初值TH1=0xFF;设定定时初值ET1=0;禁止定时器1中断TR1=1;启动定时器1}

自己编写STC15F2K60S2函数之串口1通信初始化 stc15串口自动地址

STC15F2K60S2串口通信的C程序,请教大神 #includedefine uchar unsigned charuchar rec,sdat;bit flag=0;void UartInit(void)/9600bps@12MHz{PCON&0x7f;波特率不倍速SCON=0x50;8位数据,可变波特率AUXR|=0x40;定时器1时钟为Fosc,即1TAUXR&0xfe;串口1选择定时器1为波特率发生器TMOD&0x0f;清除定时器1模式位TMOD|=0x20;设定定时器1为8位自动重装方式TL1=0xD9;设定定时初值TH1=0xD9;设定定时器重装值ET1=0;禁止定时器1中断TR1=1;启动定时器1}void uart()interrupt 4{if(RI){RI=0;rec=SBUF;flag=1;}if(TI){TI=0;}}main(){UartInit();while(1){if(flag){SBUF=rec;flag=0;}}}

自己编写STC15F2K60S2函数之串口1通信初始化 stc15串口自动地址

stc15 四个串口 单片机型号 楼主看看有没有需要的?

自己编写STC15F2K60S2函数之串口1通信初始化 stc15串口自动地址

STC12C5A60S2双串口初始化-串口1初始化4800,串口2初始化4800,如何写初始化? MOV SCON,#50H;8位数据,可变波特率MOV S2CON,#50H;8位数据,可变波特率MOV BRT,#0F4H;4800bps@11.0592MHzORL AUXR,#14H;独立波特率发生器时钟为Fosc,即1TORL IE2,#01H;允许串口2中断ANL AUXR,#03FH;定时器12时钟为Fosc,即12TANL AUXR,#0FEH;串口1选择定时器1为波特率发生器MOV TMOD,#20H;设定定时器1为8位自动重装方式MOV TL1,#0F4H 4800bps@11.0592MHzMOV TH1,#0F4H;设定定时器重装值

#单片机#串口#unsigned#初始化#波特率

随机阅读

qrcode
访问手机版