UART串口通信程序.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UART串口通信程序

 PAGE \* MERGEFORMAT 5 1、UART串口通信 void Delay(int tt) { U32 i; for(;tt0;tt--) { for(i=0;i10000;i++){} } } void Uart_SendByte(int data) { int whichUart=0; if(whichUart==0) { if(data==\n) { while(!(rUTRSTAT0 0x2)); Delay(1); //because the slow response of hyper_terminal WrUTXH0(\r); } while(!(rUTRSTAT0 0x2)); //Wait until THR is empty. Delay(1); WrUTXH0(data); } } void uart_init(int pclk,int baud) { int i; if(pclk == 0) pclk= PCLK; rUFCON0 = 0x0; rUCON0= 0x245; rUMCON0 = 0x0; rULCON0 = 0x3; rUBRDIV0=( (int)(pclk/16./baud+0.5) -1 ); for(i=0;i100;i++); Delay(400); } char Uart_Getch(void) { while(!(rUTRSTAT0 0x1)); //Receive data ready return RdURXH0(); } void Uart_TxEmpty(int ch) { if(ch==0) { while(!(rUTRSTAT0 0x4)); } } void Uart_SendString(char *pt) { while(*pt) Uart_SendByte(*pt++); } void Uart_Printf(char *fmt,...) { va_list ap; char string[256]; va_start(ap,fmt); vsprintf(string,fmt,ap); Uart_SendString(string); va_end(ap); } int Main(int argc, char **argv) { // int data; char ch; U8 key; U32 mpll_val=0; mpll_val = (9212)|(14)|(1); ChangeMPllValue((mpll_val12)0xff, (mpll_val4)0x3f, mpll_val3); ChangeClockDivider(key, 12); MMU_DisableICache(); MMU_DisableDCache(); rGPBCON = 0x155555; rGPHCON = 0x00faaa; rGPHUP = 0x7ff; uart_init(0,115200); Uart_Printf(\nPlease enter char:); ch=Uart_Getch(); Uart_Printf(\n); Uart_SendByte(ch); while(1) { Uart_SendByte(ch); Uart_SendByte(,); ch++; Delay(100); } return 0; }

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档