1. 实验设计:
Memory to Peripheral , Memory to 外设, 把内部SRAM的数据传输到串口外设,同时LED灯闪烁,演示DMA传数据不需要占用CPU
2. 编程要点
1)初始化USART;
2)初始化DMA,注意也需要初始化DMA外设的时钟;
3)编写主函数(开启串口发送DMA请求);
3 源码
完成相关宏定义
// 串口工作参数宏定义
#define DEBUG_USARTx USART1
#define DEBUG_USART_CLK RCC_APB2Periph_USART1
#define DEBUG_USART_APBxClkCmd RCC_APB2PeriphClockCmd
#define DEBUG_USART_BAUDRATE 115200
// USART GPIO 引脚宏定义
#define DEBUG_USART_GPIO_CLK (RCC_APB2Periph_GPIOA)
#define DEBUG_USART_GPIO_APBxClkCmd RCC_APB2PeriphClockCmd
#define DEBUG_USART_TX_GPIO_PORT GPIOA
#define DEBUG_USART_TX_GPIO_PIN GPIO_Pin_9
#define DEBUG_USART_RX_GPIO_PORT GPIOA
#define DEBUG_USART_RX_GPIO_PIN GPIO_Pin_10
// 串口对应的DMA请求通道
#define USART_TX_DMA_CHANNEL DMA1_Channel4
// 外设寄存器地址
#define USART_DR_ADDRESS (USART1_BASE+0x04)
// 一次发送的数据量
#define SENDBUFF_SIZE 5000
void USART_Config(void);
void USARTx_DMA_Config(void);
配置USART, DMA 模式
uint8_t SendBuff[SENDBUFF_SIZE];
/**
* @brief USART GPIO 配置,工作参数配置
* @param 无
* @retval 无
*/
void USAR