• ch579串口编程笔记


    “CH579SFR.h”库文件,关于串口中断部分

    /* UART interrupt identification values for IIR bits 3:0 */
    #define UART_II_SLV_ADDR    0x0E                      // RO, UART0 slave address match 
    #define UART_II_LINE_STAT   0x06                      // Re staO, UART interrupt by receiver lintus
    #define UART_II_RECV_RDY    0x04                      // RO, UART interrupt by receiver data available
    #define UART_II_RECV_TOUT   0x0C                      // RO, UART interrupt by receiver fifo timeout
    #define UART_II_THR_EMPTY   0x02                      // RO, UART interrupt by THR empty
    #define UART_II_MODEM_CHG   0x00                      // RO, UART0 interrupt by modem status change
    #define UART_II_NO_INTER    0x01                      // RO, no UART interrupt is pending

    参数解释
    名称说明解释
    UART_II_SLV_ADDR    0x0ERO, UART0 slave address match 只读,串口0从机地址匹配
    UART_II_LINE_STAT   0x06Re staO, UART interrupt by receiver lintus只读,串口
    UART_II_RECV_RDY    0x04RO, UART interrupt by receiver data available只读,
    UART_II_RECV_TOUT   0x0CRO, UART interrupt by receiver fifo timeout只读,
    UART_II_THR_EMPTY   0x02RO, UART interrupt by THR empty只读,
    UART_II_MODEM_CHG   0x00RO, UART0 interrupt by modem status change只读,
    UART_II_NO_INTER    0x01RO, no UART interrupt is pending只读,

    接收长字符串

    CH57x_uart.h中修改提供代码如下

    红圈部分根据芯片说明书修改为如下

    1. typedef enum
    2. {
    3.     UART_1BYTE_TRIG = 0,        // 1×Ö½Ú´¥·¢
    4.     UART_2BYTE_TRIG = 1,            // 2×Ö½Ú´¥·¢
    5.     UART_4BYTE_TRIG = 2,            // 4×Ö½Ú´¥·¢
    6.     UART_7BYTE_TRIG = 3,            // 7×Ö½Ú´¥·¢
    7.     
    8. }UARTByteTRIGTypeDef;   

    初始化UART1

    文件CH57x_uart.c中修改为1字节触发。

    测试结果

  • 相关阅读:
    搭建FTP服务器备份vCenter
    vue路由之路由的两种模式
    【Web安全】HTML5安全
    ChatGLM-6B-Int4运行有误
    JVM之垃圾收集器三
    yoloV8训练自己的数据集合资源
    DigiCert代码签名证书都支持有哪些加密算法
    YoloV8 +可视化界面+GUI+交互式界面目标检测与跟踪
    C++——构造函数
    vue3的一些注意事项
  • 原文地址:https://blog.csdn.net/hwj277/article/details/134197282