资源简介
STM32F1多串口源代码,使用DMA中断,可以实现多个串口之间的透传,非常方便修改,只需在文件头部define部分修改就可以。
![](http://www.nz998.com/pic/40750.jpg)
代码片段和文件信息
/**
******************************************************************************
* @file usart.c
* @author kit7828
* @version V1.0
* @date 2018-04-09
* @brief 多usart应用
******************************************************************************
* @attention
*
* 平台: STM32 103RCT6 最小系统板
* 用途: 多串口应用,均使用DMA通道传输,避免中断影响串口数据
* 说明: GA6,MP3,DEBUG以及GPS等
* 说明: 串口的核心功能是对接收内容的处理,发送比较简单,只需处理缓存区就可
*
******************************************************************************
*
* main.c中调用方法
* uart1_init(115200); //GA6
* uart2_init(115200); //DEBUG
* uart3_init(115200); //MP3
* uart4_init(115200); //TEST
*
* DMA_Configuration();
*/
//#include “sys.h“
#include
#include “usart.h“
//#include “led.h“
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
#define USART1_TX_DMA_Channel DMA1_Channel4
#define USART1_RX_DMA_Channel DMA1_Channel5
#define USART2_TX_DMA_Channel DMA1_Channel7
#define USART2_RX_DMA_Channel DMA1_Channel6
#define USART3_TX_DMA_Channel DMA1_Channel2
#define USART3_RX_DMA_Channel DMA1_Channel3
#define UART4_TX_DMA_Channel DMA2_Channel5
#define UART4_RX_DMA_Channel DMA2_Channel3
//////////////////////////////////////////////////////////////////////////////////
#define BUFFSIZE 192
u8 USART1_SEND_DATA[BUFFSIZE];
u8 USART1_RECEIVE_DATA[BUFFSIZE];
u8 USART2_SEND_DATA[BUFFSIZE];
u8 USART2_RECEIVE_DATA[BUFFSIZE];
u8 USART3_SEND_DATA[BUFFSIZE];
u8 USART3_RECEIVE_DATA[BUFFSIZE];
u8 UART4_SEND_DATA[BUFFSIZE];
u8 UART4_RECEIVE_DATA[BUFFSIZE];
u8 USART1_TX_Finish=1;
u8 USART2_TX_Finish=1;
u8 USART3_TX_Finish=1;
u8 UART4_TX_Finish =1;
//串口之间可以自由切换,只需更改如下define中的内容
#define DEBUG_UART USART2
#define TEST_TX_Finish USART3_TX_Finish
#define TEST_USART_SEND USART3_SEND_DATA
#define TEST_TX_DMA_Channel USART3_TX_DMA_Channel
#define USART3_Recv TEST_Recv
#define SOUND_TX_Finish UART4_TX_Finish
#define SOUND_USART_SEND UART4_SEND_DATA
#define SOUND_TX_DMA_Channel UART4_TX_DMA_Channel
#define UART4_Recv SOUND_Recv
#define GPRS_TX_Finish USART1_TX_Finish
#define GPRS_USART_SEND USART1_SEND_DATA
#define GPRS_TX_DMA_Channel USART1_TX_DMA_Channel
#define USART1_Recv GPRS_Recv
#define DEBUG_TX_Finish USART2_TX_Finish
#define DEBUG_USART_SEND USART2_SEND_DATA
#define DEBUG_TX_DMA_Channel USART2_TX_DMA_Channel
#define USART2_Recv DEBUG_Recv
//////////////////////////////////////////////////////////////////
//加入以下代码支持printf函数而不需要选择use MicroLIB
#if 1
#pragma import(__use_no_semihosting)
//标准库需要的支持函数
struct __FILE
{
int handle;
};
FILE __stdout;
//定义_sys_exit()以避免使用半主机模式
void _sys_exit(int x)
{
x = x;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 38105 2018-04-10 11:03 UART\usart.c
文件 619 2018-04-10 09:41 UART\usart.h
目录 0 2018-04-10 11:03 UART
----------- --------- ---------- ----- ----
38724 3
- 上一篇:fpga 硬件音乐演奏
- 下一篇:T4M unity 地形插件
相关资源
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- 基于xilinx FPGA的PCIe设计实战
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- 一个简单的verilog编写的DMA IP CORE,和
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
- 意法半导体STM全系列微控制器STM32ST
- 基于STM32芯片的SX1278 驱动 LORA.rar
- STM32的PCB封装库,以及原理图库,48
- SX1280.rar
- STM32 DS3231驱动.zip
评论
共有 条评论