这是一段简单的串口通信程序
#include "config.h"
void DelayNS(uint32 dly) { uint32 i; for(; dly>0; dly--) for(i=0; i<50000;i++); }
#define UART_BPS 115200
void UART0_Init(void) { uint16 Fdiv; U0LCR=0x83; Fdiv=(Fpclk/16)/UART_BPS; U0DLM=Fdiv/256; U0DLL=Fdiv%256; U0LCR=0x03; }
uint8 UART0_GetByte(void) { uint8 rcv_dat; while((U0LSR & 0x01) == 0); rcv_dat = U0RBR; return(rcv_dat); }
void UART0_GetStr(uint8 *s, uint32 n) { for( ; n>0; n--) { *s++ = UART0_GetByte(); } } void UART0_SendByte(uint8 dat) { U0THR=dat; while ((U0LSR & 0x40) == 0); }
void UART0_SendStr(uint8 const *str) { while(1) { if(*str == '\0') break; UART0_SendByte(*str++); } }
int main (void) { uint8 snd[32]; PINSEL0 = 0x00000005; UART0_Init(); UART0_GetStr(snd,18); DelayNS(10); UART0_SendStr(snd); DelayNS(10); while(1); return 0; }
用串口调试软件发送18个字符,然后回显
我用的是com4,用串口调试软件选择这个口时,总是提示这个“端口被占用或者没有发现此串口”
我用的是周立功的开发板
请高手给我指点 |