USART与UART有什么区别

物联网0177

USART与UART有什么区别,第1张

//摘要: 掌握 UART0配置及使用,程序中将UART0 配置到P00、 P01。利用串口调试助手,波特设置为4800,并选择十六进制发送和显示,十六进制发送为偶数个,不然会少返回一个数,详见程序注释。

#include "c8051f020h"

unsigned char data1;

void SYSCLK_Init();

void PORT_Init();

void UART0_Init();

void SYSCLK_Init()

{

unsigned int i;

OSCXCN=0X67; //0X67=0110,0111

for(i=0;i<256;i++); //等待>1ms

while(!(OSCXCN&0X80)); //等待XTLVLD变为1

OSCICN=0X88; //时钟失效监测器,选择外部时钟源作为系统时钟

}

void PORT_Init()

{

XBR0 = 0x27;/交叉开关配置,URAT总线TX0置到P00口,RX0置到P01口, SPI总线SCK配置到P02口,

MOSI为P04口, NSS为P05,MISO配置到P03口,IIC总线SDA置到P06口�SCK置到P07 TX1,RX1配置到P10,P11, CEX0,CEX1,配置到P12,P13,外部中断int0配置到P14 /

XBR1 = 0x04;

XBR2 = 0x44; /允许功能选择开关有效/

P0MDOUT = 0x1A;/SCK、MOSI和NSS为推拉式输出,MISO为开漏式/

P74OUT =0xff;

}

void UART0_Init()

{

SCON0=0x50; //串口方式1

TMOD=0X20; //选用定时器1作为波特率发生器

TH1=0xF4; //波特率为4800

TL1=0xF4;

ES0=1; //开启串口中断0

TF1=0;

TR1=1; //定时器启动

PCON=0X80; //波特率加倍 波特率为9600

TI0=1;

}

void UART0_ISR() interrupt 4 using 1

{

if(RI0)

{

RI0=0;//中断接收标志清零

data1=SBUF0;//接收数据

SBUF0=data1;//发送数据

while(TI0==0);

TI0=0;//发送标志清零

}

}

main()

{

WDTCN=0XDE;

WDTCN=0XAD;

SYSCLK_Init();

PORT_Init();

UART0_Init();

EA=1;

while(1);

}

以上就是关于USART与UART有什么区别全部的内容,包括:USART与UART有什么区别、欲使用串口监视器,需在代码中配置什么、求c8051F020的UART串口通信程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!