这个程序是LPC2210的UART1查询方式发送数据hello word,可是用EASYARM监视到发送的数据全部是FF(为16进制显示).我前前后后的检查,也没发觉不对的地方啊。这个程序有问题吗?请教一下,谢谢<br /><br />#include "config.h"<br /><br />/********************************************************************<br />* 名称:DelayNS()<br />* 功能:长软件延时<br />* 入口参数:dly 延时参数,值越大,延时越久<br />* 出口参数:无<br />******************************************************************/<br />void DelayNS(uint32 dly)<br />{ <br /> uint32 i;<br /><br /> for(; dly>0; dly--) <br /> for(i=0; i<5000; i++);<br />}<br /><br />#define UART_BPS 115200 /* 定义通讯波特率 */<br /><br />/****************************************************************<br />* 名称:UART1_Ini()<br />* 功能:初始化串口0。设置为8位数据位,1位停止位,无奇偶校验,波特率为115200<br />* 入口参数:无<br />* 出口参数:无<br />*******************************************************************/<br />void UART1_Ini(void)<br />{ <br /> uint16 Fdiv;<br /> <br /> U1LCR = 0x80; /* 允许访问分频因子寄存器 */<br /> Fdiv = (Fpclk / 16) / UART_BPS; /* 设置波特率 */<br /> U1DLM = Fdiv / 256; <br /> U1DLL = Fdiv % 256; <br /> U1LCR = 0x03; /* 设置为8,1, */<br />}<br /> <br />/****************************************************************<br />* 名称:UART0_SendByte()<br />* 功能:向串口发送字节数据,并等待发送完毕。<br />* 入口参数:data 要发送的数据<br />* 出口参数:无<br />*****************************************************************/<br />void UART1_SendByte(void)<br />{ <br /> U1THR = data; // 发送数据<br /> while( (U1LSR&0x40)==0 ); // 等待数据发送完毕<br />}<br /><br />/*****************************************************************<br />* 名称:UART1_SendStr()<br />* 功能:向串口发送一字符串<br />* 入口参数:srt 要发送的字符串的指针<br />* 出口参数:无<br />*******************************************************************/<br />void UART1_SendStr(uint8 const *str)<br />{ <br /> while(1)<br /> { <br /> if( *str == '\0' ) break;<br /> UART1_SendByte(*str++); // 发送数据<br /> }<br />}<br /> <br />uint8 const SEND_STR[] = "Hello World!\n";<br />/********************************************************************<br />* 名称:main()<br />* 功能:向串口UART0发送字符串"Hello World!"<br />*******************************************************************/<br />int main(void)<br />{ <br /> PINSEL0 = (PINSEL0 & 0xfff0ffff) | 0x50000; /*选择管脚为UART1*/<br /> <br /> UART1_Ini();<br /> <br /> while(1)<br /> {<br /> UART1_SendStr(SEND_STR);<br /> DelayNS(10);<br /> }<br /> <br /> return(0);<br />}<br /> |
|