資源簡介
STM32F1多串口源代碼,使用DMA中斷,可以實現(xiàn)多個串口之間的透傳,非常方便修改,只需在文件頭部define部分修改就可以。

代碼片段和文件信息
/**
??******************************************************************************
??*?@file????usart.c
??*?@author??kit7828
??*?@version?V1.0
??*?@date????2018-04-09
??*?@brief???多usart應用
??******************************************************************************
??*?@attention
??*
??*?平臺: STM32?103RCT6?最小系統(tǒng)板?
??*?用途: 多串口應用,均使用DMA通道傳輸,避免中斷影響串口數(shù)據(jù)
??*?說明: GA6,MP3,DEBUG以及GPS等
*?說明: 串口的核心功能是對接收內容的處理,發(fā)送比較簡單,只需處理緩存區(qū)就可
??*
??******************************************************************************
*
*???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?“l(fā)ed.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函數(shù)而不需要選擇use?MicroLIB??????????
#if?1
#pragma?import(__use_no_semihosting)?????????????
//標準庫需要的支持函數(shù)?????????????????
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 地形插件
評論
共有 條評論