# c8t6_uart **Repository Path**: njdc2020/c8t6uart ## Basic Information - **Project Name**: c8t6_uart - **Description**: 开源了一个自己项目上用的基于c8t6 CubeMX-HAL库 的高可靠、多模式的uart通用串口通信完整工程项目,无错编译可以直接测试使用。该项目支持 DMA、中断以及 GPIO 模拟的串口这三类模式的串口通信,上层统一封装,接口统一,简单通过宏定义修改就可以移植到自己项目里。本项目经本人实际测试,高吞吐,高并发。 - **Primary Language**: C - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-02 - **Last Updated**: 2026-05-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ![License](https://img.shields.io/badge/License-MIT-blue.svg) ![MCU](https://img.shields.io/badge/MCU-STM32-blue) # STM32F103C8T6-CubeMX-HAL库-UART-串口通信 #### 介绍 【STM32】-CubeMX-HAL库-UART-串口通信-STM32F103C8T6-收发测试 #### 项目目录 ├── user/ # 用户源代码 │ ├── crc # CRC16处理 │ ├── cev_uart # 串口处理 │ └── ring_fifo # 环形缓冲区 ├── Core/ # HAL库核心代码,stm32CubeMX工程文件 ├── Drivers/ # 硬件驱动代码 ├── DOC/ # 文档 | |- 参考原理图 | | | |_ | ├── README.md # 项目说明 └── .gitignore # Git忽略文件 #### 实现功能 1. 串口2日志输出口; 2. 串口1 DMA收发模式,空闲中断; 3. 串口3 中断发送,中断接收; 4. 收/发环形缓冲区,fifo 缓冲区 UART_SEND_BUF_SIZE 64字节,发送缓存64字节?? RX_FIFO_BUF 256字节,一个包最大不能超过256字节; TX_FIFO_BUF 256字节,一个包最大不能超过256字节; 5. 不定长度接收处理; 6. 串口1和串口3同时收发,可以做到200ms间隔发送一次数据。 #### 串口1 DMA模式 1. PA9 ------> USART1_TX 2. PA10 <------ USART1_RX 3. 串口接收缓存:BUFF_MAX_SIZE 64 #### 串口3 中断模式 1. PB10 ------> USART3_TX 2. PB11 <------ USART3_RX 3. 串口接收缓存:BUFF_MAX_SIZE 64 #### GPIO模拟串口 1. PA2 TXD1 3. 串口接收缓存:SIMU_BUFF_MAX_SIZE 64,单包不能超过64字节; #### 使用说明 1. 使用keil工具打开工程文件 2. uart_rt_init(),调整对应的串口工作模式,中断模式、DMA模式; 3. 实例化结构体 uart_device_t uart_rt[UART_DEVICE_NUMBER] = {0}; 4. getHuartById(),通过串口uart_id号,获取对应串口对象指针; 5. getIdByHuart(),通过串口对象指针,获取对应串口uart_id号; #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 创建 [gitee issues](https://gitee.com/lx-stm32/STM32F103C8T6-CubeMX-HAL库-UART-串口通信/issues/new),提交bug