一,代碼生成
按以前的方法設(shè)置好時鐘和調(diào)試方式,這里就不多說了。


2.設(shè)置串口1。

3.在DMA Setting里點擊Add添加USART1_TX,Mode有兩種模式,一種是普通模式,使用一次發(fā)送語句就發(fā)一次,另一種是循環(huán)模式,使用一次發(fā)送會一直發(fā)送。這里發(fā)送我選擇普通模式,接收選擇循環(huán)模式。

4.在中斷設(shè)置里打開串口1的中斷。

5.時鐘和文件路徑等設(shè)置好,然后點生成代碼。

二,代碼編寫
1.先定義發(fā)送和接收的數(shù)組。
/* USER CODE BEGIN 0 */uint8_t aRxBuffer[1];uint8_t aTxBuffer[]="ok";/* USER CODE END 0 */
2.打開串口DMA的發(fā)送使能,while循環(huán)可以放一些LED的閃爍。
/* USER CODE BEGIN 2 */ HAL_UART_Receive_DMA(&huart1,aRxBuffer,1); HAL_UART_Transmit_DMA(&huart1,aTxBuffer,sizeof(aTxBuffer)); /* USER CODE END 2 */
3.最后加上一個串口接收函數(shù)的回調(diào)函數(shù),把接收到的數(shù)據(jù)再發(fā)出去。
/* USER CODE BEGIN 4 */void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle){ HAL_UART_Transmit(&huart1,aRxBuffer,1,0);}/* USER CODE END 4 */
三,現(xiàn)象:
電腦的串口會收到“OK”,然后從電腦發(fā)送給芯片任意字符,芯片再發(fā)回來。

-
STM32
+關(guān)注
關(guān)注
2305文章
11120瀏覽量
371159 -
串口
+關(guān)注
關(guān)注
15文章
1607瀏覽量
81936 -
dma
+關(guān)注
關(guān)注
3文章
577瀏覽量
105353
發(fā)布評論請先 登錄
STM32CUBEMX開發(fā)GD32F303(9)----USART通過DMA收發(fā)
STM32CubeMX串口中斷模式收發(fā)數(shù)據(jù)
使用STM32CubeMX實現(xiàn)中斷模式下的串口收發(fā)
STM32CUBEMX配置教程(十二)STM32的定時器觸發(fā)的固定頻率ADC采樣(使用DMA)
STM32CUBEMX配置教程(十三)STM32的定時器觸發(fā)的固定頻率DAC輸出(使用DMA)
STM32F407的串口UART 基礎(chǔ)配置STM32CubeMX
STM32CubeMX HAL庫串口+DMA+IDLE空閑中斷不定長度數(shù)據(jù)接收和發(fā)送
STM32 HAL CubeMX 串口IDLE接收空閑中斷+DMA
STM32CUBEMX配置教程(九)STM32串口DMA收發(fā)數(shù)據(jù)
基于STM32CubeMX——HAL庫開發(fā)的串口通訊(DMA模式)
STM32CubeMX-串口開啟DMA進(jìn)行數(shù)據(jù)傳輸
STM32CubeMX之串口接收不定長數(shù)據(jù)

利用STM32CubeMx的串口DMA收發(fā)數(shù)據(jù)
評論