本文共 1728 字,大约阅读时间需要 5 分钟。
????????UART??????????????????????????????????????????????????????????????????????????????????????????????????1. ?????????????????????2. ????????????SBUF registers??????3. ???????????????????????????4. ?????????????????????????5. ?????????????1????2?????????6. ????????????????????????????????????????????????????????????????????????????????????????????```cvoid delay(long d) { while(d--) ;}void uar1tByte(char byte) { SBUF = byte; while(!TI); TI = 0;}void uart1String(char *s) { while(*s) { uar1tByte(*s++); }}void uart1Figure(long figure) { if(figure >= 100000000) uart1tByte('0' + figure/100000000%10); if(figure >= 10000000) uart1tByte('0' + figure/10000000%10); if(figure >= 1000000) uart1tByte('0' + figure/1000000%10); if(figure >= 100000) uart1tByte('0' + figure/100000%10); if(figure >= 10000) uart1tByte('0' + figure/10000%10); if(figure >= 1000) uart1tByte('0' + figure/1000%10); if(figure >= 100) uart1tByte('0' + figure/100%10); if(figure >= 10) uart1tByte('0' + figure/10%10); if(figure >= 0) uart1tByte('0' + figure/1%10);}void uart1TiINIT() { unsigned int INITValue = 256 - (11059200/12/32/9600); EA = 1; ES = 1; SCON = 0x50; TMOD = 0x0F; TMOD |= 0x20; TH1 = TL1 = INITValue; ET1 = 0; TR1 = 1;}void uart1T2INIT() { unsigned int INITValue = 65536 - (11059200/32/9600); EA = 1; ES = 1; SCON = 0x50; T2CON = 0x34; TH2 = RCAP2H = INITValue / 256; TL2 = RCAP2L = INITValue % 256; TR2 = 1;}int main() { uart1T2INIT(); while(1) { i++; uart1String("i = "); uart1Figure(i); uart1String("\r\n"); delay(10000); }} ????????UART?????????????????????????????
转载地址:http://fbrq.baihongyu.com/