一,代碼生成
按以前的方法設(shè)置好時(shí)鐘和調(diào)試方式,這里就不多說了。
2.設(shè)置串口1。
3.在DMA Setting里點(diǎn)擊Add添加USART1_TX,Mode有兩種模式,一種是普通模式,使用一次發(fā)送語句就發(fā)一次,另一種是循環(huán)模式,使用一次發(fā)送會(huì)一直發(fā)送。這里發(fā)送我選擇普通模式,接收選擇循環(huán)模式。
4.在中斷設(shè)置里打開串口1的中斷。
5.時(shí)鐘和文件路徑等設(shè)置好,然后點(diǎn)生成代碼。
二,代碼編寫
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.最后加上一個(gè)串口接收函數(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)象:
電腦的串口會(huì)收到“OK”,然后從電腦發(fā)送給芯片任意字符,芯片再發(fā)回來。
-
STM32
+關(guān)注
關(guān)注
2270文章
10910瀏覽量
356591 -
串口
+關(guān)注
關(guān)注
14文章
1555瀏覽量
76665 -
dma
+關(guān)注
關(guān)注
3文章
565瀏覽量
100673
發(fā)布評論請先 登錄
相關(guān)推薦
評論