资源简介
STM32F1多串口源代码,使用DMA中断,可以实现多个串口之间的透传,非常方便修改,只需在文件头部define部分修改就可以。
代码片段和文件信息
/**
******************************************************************************
* @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的智能小车资料
- STM32F103C8T6库Altium Designer
- ddmac黑苹果安装写入硬盘工具
- 捏脸软件插件 for 3dmax
- STM32L151工程模板.rar
- 基于STM32的智能小车设计
- 基于STM32的12832液晶显示驱动
- AD9837驱动.txt
- STM32F103驱动无线模块CC1101程序
- 基于LABVIEW 的STM32USB数据采集
- (IDMAllProductsKeygenv3.6)keygen.rar
- stm32多路超声波模块测距多路定时器输
- STM32的12864驱动程序(免积分)
- STM32F4系列 LQFP PCB封装
- STM32F407VGT6原理图和PCB库
- STM32F407VET6原理图和PCB库
- STM32F405RGT6原理图和PCB库
- 正点原子stm32 mini板内部flash LCD显示图
- 打散多维材质的脚本
- polyfx v3.2最新建筑生长插件多边形粒子
-
STM32串口控制DFPla
yer_Mini播放模块 - stm32控制的PID温度控制系统介绍
- stm32实现电表电量采集
- STM32F103RCT6 最小的系统原理图
- STM32舵机控制程序
- 源享科技刘凯老师STM32高清视频教程
- ALIENTEK战舰STM32开发板及模块元器件封
- stm32f103音乐播放器
- 基于STM32的SPWM波产生程序
- dmake完整版工具
评论
共有 条评论