[C++] C语言串口测试程序代码 →→→→→进入此内容的聊天室

来自 , 2019-03-12, 写在 C++, 查看 134 次.
URL http://www.code666.cn/view/89abe98d
  1. #include<stdio.h>
  2. unsigned int UART0_ADDR = 0x20080000;
  3. unsigned int retu=0;
  4. int i=0;
  5. void delay_x(unsigned short cycles)
  6. {    
  7.     unsigned short t;
  8.     t = cycles;
  9.     while ( --t != 0 );
  10. }
  11. int  main()
  12. {
  13. ///////////初始化部分////////////////////////////////////////////////////
  14.     retu = *(unsigned int *)(UART0_ADDR  + 0X30);//uart_cr
  15.     *(unsigned int *)(UART0_ADDR  + 0X30) = 0x300;
  16.   //  retu = *(unsigned int *)(UART0_ADDR  + 0X24);//ibrd
  17.   //  retu = *(unsigned int *)(UART0_ADDR  + 0X28);//fbrd
  18.    *(unsigned int *)(UART0_ADDR  + 0X24) = 1;
  19.    *(unsigned int *)(UART0_ADDR  + 0X28) = 40;
  20.    *(unsigned int *)(UART0_ADDR  + 0X30) = 0x300;
  21.    
  22.    *(unsigned int *)(UART0_ADDR  + 0X2c) = 0x60;//UART_LCR_H
  23.    *(unsigned int *)(UART0_ADDR  + 0X34) = 0x12; //UART_IFLS
  24.    *(unsigned int *)(UART0_ADDR  + 0X38) = 0x0;//UART_IMSC
  25.    
  26.    
  27.     retu = *(unsigned int *)(UART0_ADDR  + 0X30);//uart_cr
  28.    
  29.     *(unsigned int *)(UART0_ADDR  + 0X30) = retu | 0x01;//使能串口
  30. //////////////////////////////////////////////////////////    
  31.     while(1)
  32.     {
  33.    // retu = *(unsigned int *)(UART0_ADDR  + 0X18);
  34.   //  retu = retu&0x40;
  35.     if(((*(unsigned int *)(UART0_ADDR  + 0X18))&0x40)==0x40)
  36.     {
  37.         retu = *(unsigned int *)(UART0_ADDR  + 0X00);
  38.         retu = retu&0xff;
  39.         *(unsigned int *)(UART0_ADDR  + 0X00) = retu;
  40.     }
  41.     retu = 0;
  42.     delay_x(0X7000);
  43.     }
  44.     return 0;
  45. }
  46. //cpp/8941

回复 "C语言串口测试程序代码"

这儿你可以回复上面这条便签

captcha