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字节触发。

测试结果

相关推荐
666HZ66621 分钟前
数据结构2.0 线性表
c语言·数据结构·算法
SmartRadio27 分钟前
ESP32添加修改蓝牙名称和获取蓝牙连接状态的AT命令-完整UART BLE服务功能后的完整`main.c`代码
c语言·开发语言·c++·esp32·ble
wxr061639 分钟前
GOF笔记
笔记·适配器·ooad
charlie1145141912 小时前
嵌入式的现代C++教程——constexpr与设计技巧
开发语言·c++·笔记·单片机·学习·算法·嵌入式
童话名剑2 小时前
锚框 与 完整YOLO示例(吴恩达深度学习笔记)
笔记·深度学习·yolo··anchor box
济6173 小时前
嵌入式C语言(第二期)
c语言
2301_783360134 小时前
关于RNAseq——从fastq到gene_counts全流程
笔记·学习
_李小白4 小时前
【AlohaMini学习笔记】第三天:AlohaMini相关技术
笔记·学习
Dillon Dong4 小时前
STM32嵌入式:使用 MT29F8G08ABACAWP NAND 的FLASH全面指南
c语言·stm32
yatingliu20194 小时前
将深度学习环境迁移至老旧系统| 个人学习笔记
笔记·深度学习·学习