一直沒有使用過DMA,在網上查了一些關於DMA的教程和例子,內容要麼偏多,要麼有關鍵條件的缺失,要麼摻雜有其他的內容干擾。流程走通之後,回頭來看其實很簡單。在此記錄一下詳細的必要的完整流程:
第一步:配置CubeMX:
第二步:編寫測試代碼
int main(void)
{
/* USER CODE BEGIN 1 */
unsigned char Buffer[10] = {0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A};
/* USER CODE END 1 */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if(HAL_DMA_GetState(&hdma_usart1_tx) != HAL_DMA_STATE_BUSY)
{
HAL_UART_Transmit_DMA(&huart1,Buffer,10);
}
}
第三步:編譯,鏈接,下載測試