前面的系统配置不在赘述,直接从串口配置开,我这边使用到5组串口,具体使用按照实际需求,
1.这边需要打开DMA Settings,在Mode选择Normal,后生成代码。(注意要勾起来中断)


2.现在进入代码,创建一个.H 文件专门用于串口处理(名字按照喜欢的取就行)
#ifndef __UART_TOOL_H
#define __UART_TOOL_H
#include "usart.h"
#define RXTXBUF_SIZE 1024
/*串口环形缓冲串口接收*/
typedef struct
{
UART_HandleTypeDef dut_huart; //为串口 huart1
unsigned char *pRxBuf; //接收缓冲区
unsigned int usRxBufSize; //接收大小
unsigned int usRxWrite; //当前位置
unsigned int usRxRead; //读取位置
unsigned char rec_end_flag; //接收完成标志位
DMA_HandleTypeDef dut_dma; //接收DMA
unsigned char *dmaRxbuf; //DMA接收指针
volatile unsigned int dmaRxlen; //DMA 接收长度
}DUT_USART_FIFO;
unsigned char GetBuf(DUT_USART_FIFO *_pUart,unsigned char *p_ucBuf,unsigned int *_usBufLen);
void UartIRQ(DUT_USART_FIFO *_pUart);
void EnabledUart(DUT_USART_FIFO *_pUart);
#endif
3.在来到创建.c阶段(同样名字用自己喜欢就行)
#include "UART_tool.h"
unsigned char GetChar(DUT_USART_FIFO *_pUart, unsigned char *_pByte)
{
unsigned int usRxWrite=_pUart->usRxWrite;

最低0.47元/天 解锁文章
3292

被折叠的 条评论
为什么被折叠?



