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 0x0E RO, UART0 slave address match 只读,串口0从机地址匹配
UART_II_LINE_STAT 0x06 Re staO, UART interrupt by receiver lintus 只读,串口
UART_II_RECV_RDY 0x04 RO, UART interrupt by receiver data available 只读,
UART_II_RECV_TOUT 0x0C RO, UART interrupt by receiver fifo timeout 只读,
UART_II_THR_EMPTY 0x02 RO, UART interrupt by THR empty 只读,
UART_II_MODEM_CHG 0x00 RO, UART0 interrupt by modem status change 只读,
UART_II_NO_INTER 0x01 RO, no UART interrupt is pending 只读,
[参数解释]

接收长字符串

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

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

objectivec 复制代码
typedef enum
{
    UART_1BYTE_TRIG = 0,        // 1×Ö½Ú´¥·¢
    UART_2BYTE_TRIG = 1,            // 2×Ö½Ú´¥·¢
    UART_4BYTE_TRIG = 2,            // 4×Ö½Ú´¥·¢
    UART_7BYTE_TRIG = 3,            // 7×Ö½Ú´¥·¢
    
}UARTByteTRIGTypeDef;   

初始化UART1

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

测试结果

相关推荐
贝塔实验室3 小时前
如何使用Altium Designer进行项目编译及验证
单片机·嵌入式硬件·mcu·射频工程·基带工程·嵌入式实时数据库·精益工程
im_AMBER4 小时前
weather-app开发手记 01 HTTP请求基础 | Axios GET 请求
笔记·网络协议·学习·计算机网络·http·axios
数据门徒4 小时前
《人工智能现代方法(第4版)》 第8章 一阶逻辑 学习笔记
人工智能·笔记·学习·算法
渡我白衣4 小时前
计算机组成原理(1):计算机发展历程
java·运维·开发语言·网络·c++·笔记·硬件架构
TL滕5 小时前
从0开始学算法——第八天(堆排序)
笔记·学习·算法·排序算法
崇山峻岭之间5 小时前
C++ Prime Plus 学习笔记030
c++·笔记·学习
liu****5 小时前
20.预处理详解
c语言·开发语言·数据结构·c++·算法
点灯小铭5 小时前
基于单片机的智能门控制系统设计与故障报警实现
单片机·嵌入式硬件·mongodb·毕业设计·课程设计·期末大作业
代码游侠5 小时前
数据结构——哈希表
数据结构·笔记·学习·算法·哈希算法·散列表
风华同学6 小时前
【环境搭建篇】ARM+Linux环境搭建
linux·运维·arm开发