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 小时前
【学习笔记】MySQL技术内幕InnoDB存储引擎——第5章 索引与算法
笔记·学习·mysql
HIZYUAN3 小时前
AG32嵌入式系统如何实现加密与固件升级(一)
stm32·单片机·嵌入式硬件·mcu·fpga开发·创业创新
黑听人4 小时前
【力扣 困难 C】329. 矩阵中的最长递增路径
c语言·leetcode
JeffersonZU6 小时前
Linux/Unix 套接字Socket编程(socket基本概念,流程,流式/数据报socket,Unix domain socket示例)
linux·c语言·tcp/ip·udp·unix·gnu
巴伦是只猫7 小时前
【机器学习笔记 Ⅲ】4 特征选择
人工智能·笔记·机器学习
YTao_G7 小时前
STM32模块:022 PWR电源控制
stm32·单片机·嵌入式硬件
小小小新人121237 小时前
C语言 ATM (4)
c语言·开发语言·算法
不爱说话的采儿7 小时前
UE5详细保姆教程(第四章)
笔记·ue5·游戏引擎·课程设计
weixin_418813877 小时前
Python-可视化学习笔记
笔记·python·学习
Vic101017 小时前
Java 开发笔记:多线程查询逻辑的抽象与优化
java·服务器·笔记