zoukankan      html  css  js  c++  java
  • 8th 串口通信

      简单来说,依然只是设置好几个寄存器即可。

      按步骤分别是:

      1. 设置引脚相关寄存器 GPxCON、GPxUP

      2. 设置波特率寄存器 UBRDIVx

      3. 设置传输格式 ULCONx 

      4. 设置接受发送方式以及时钟源 UCONx

      5. 设置流控和FIFO UFCONx UMCONx

      相关配置代码如下:

      

     1 void uart0_init(void)
     2 {
     3     GPHCON     |=    0xa0;        //设置TX,RX引脚
     4     GPHUP       =    0x0c;        //设置为内部上拉方式
     5 
     6     UBRDIV0     =    UART_BRD;    //设置波特率
     7 
     8     ULCON0      =    0x03;        //设置传输格式 8位 无校验 0个停止位 
     9     
    10     UCON0       =    0x05;        //选择查询方式,以及时钟源选择为PCLK
    11     UFCON0      =    0x00;        // 不使用FIFO
    12     UMCON0      =    0x00;        // 不使用流控
    13     
    14 
    15 }

    关于接收和发送的查询方式,是通过UTRSTATx寄存器的

    UTRSTATx具体如下:

    主要是第0位与第2位。第0位是当接收缓存区接收到数据时,置1。第2位是当发送缓存区没有数据并且最后一个数据也发送出去时,置1.

     代码如下:

     1 void putc(unsigned char c)
     2 {
     3     /* 等待,直到发送缓冲区中的数据已经全部发送出去 */
     4     while (!(UTRSTAT0 & TXD0READY));
     5     
     6     /* 向UTXH0寄存器中写入数据,UART即自动将它发送出去 */
     7     UTXH0 = c;
     8 }
     9 
    10 /*
    11  * 接收字符
    12  */
    13 unsigned char getc(void)
    14 {
    15     /* 等待,直到接收缓冲区中的有数据 */
    16     while (!(UTRSTAT0 & RXD0READY));
    17     
    18     /* 直接读取URXH0寄存器,即可获得接收到的数据 */
    19     return URXH0;
    20 }

     其中 RXD0READY = 1 ,TXD0READY= 0b100 

  • 相关阅读:
    慕课网 k8s环境搭建坑点
    这种yum源为阿里云
    linux yum安装jdk
    docker 常用命令
    docker部署
    docker windows安装 就是这么简单
    idea
    jrebel 破解失败 Unexpected response from server
    bladex flowable 表关系
    bladex 接口
  • 原文地址:https://www.cnblogs.com/asam/p/6379753.html
Copyright © 2011-2022 走看看