一,代碼生成
按以前的方法設置好時鐘和調試方式,這里就不多說了。
2.設置串口1。
3.在DMA Setting里點擊Add添加USART1_TX,Mode有兩種模式,一種是普通模式,使用一次發(fā)送語句就發(fā)一次,另一種是循環(huán)模式,使用一次發(fā)送會一直發(fā)送。這里發(fā)送我選擇普通模式,接收選擇循環(huán)模式。
4.在中斷設置里打開串口1的中斷。
5.時鐘和文件路徑等設置好,然后點生成代碼。
二,代碼編寫
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ù)的回調函數(shù),把接收到的數(shù)據再發(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
+關注
關注
2293文章
11032瀏覽量
365035 -
串口
+關注
關注
15文章
1588瀏覽量
79954 -
dma
+關注
關注
3文章
576瀏覽量
103269
發(fā)布評論請先 登錄
STM32CUBEMX開發(fā)GD32F303(9)----USART通過DMA收發(fā)

STM32CubeMX串口中斷模式收發(fā)數(shù)據
使用STM32CubeMX實現(xiàn)中斷模式下的串口收發(fā)
STM32CUBEMX配置教程(十二)STM32的定時器觸發(fā)的固定頻率ADC采樣(使用DMA)

STM32CUBEMX配置教程(十三)STM32的定時器觸發(fā)的固定頻率DAC輸出(使用DMA)

STM32CubeMX HAL庫串口+DMA+IDLE空閑中斷不定長度數(shù)據接收和發(fā)送

STM32 HAL CubeMX 串口IDLE接收空閑中斷+DMA

STM32CUBEMX配置教程(九)STM32串口DMA收發(fā)數(shù)據

基于STM32CubeMX——HAL庫開發(fā)的串口通訊(DMA模式)

STM32CubeMX之串口接收不定長數(shù)據

評論