• 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 

  • 相关阅读:
    简单排序
    vue router在history模式下 如何部署在tomcat上
    概率论复习纲要
    MyBatis学习笔记(持续更新 2021/01/06- 2021/01/10)
    JavaWeb学习笔记(持续编辑2021/1/5-)
    2021/01/10周学习总结
    将WiFi搞得可以认证石铁大校园网(小米3路由器)
    对老师的建议
    自我感觉加分项
    github、gitee冲突配置ssh key
  • 原文地址:https://www.cnblogs.com/asam/p/6379753.html
Copyright © 2020-2023  润新知