stm32HAL庫學習 UART學習筆記

2021-08-20 12:40:17 字數 1233 閱讀 6176

一、串列埠輸出列印重定向printf,**如下:

int fputc(int ch,file *f)

; hal_uart_transmit(&huart1,temp,1,1000);

return (ch);

}int fgetc(file *f)

用作程式除錯輸出時,可以使用一組巨集定義,方便開發完成後關閉printf;

/* 除錯日誌串列埠列印巨集定義 */

#define __debug__

#ifdef __debug__

#define debug(format,...) printf(format,##__va_args__)

//#define debug(format,...) printf("file:"__file__",line:%05d:"format"\n",__line__,##__va_args__)

#else

#define debug(format,...)

#endif

二、可接受任意位元組的串列埠通訊

首先在cube配置串列埠全域性中斷(global interrupt)

1、在cube生成的usart的hal_uart_mspinit()函式中開啟收到資料中斷(uart_it_rxne)及幀中斷(uart_it_idle)。

__hal_uart_enable_it(uarthandle, uart_it_rxne);

__hal_uart_enable_it(uarthandle, uart_it_idle);

2、在串列埠中斷函式usart1_irqhandler()中新增
if(reset != __hal_uart_get_flag(&huart1, uart_flag_rxne))

else if(reset != __hal_uart_get_flag(&huart1, uart_flag_idle))

3、在主程式中新增如下**即可完成接受任意位元組的資料

if(receivestate == 1)

暫時自己就用到了這兩個功能,以後用到別的再補充......

STM32 HAL庫學習筆記

1 系統時鐘 一般用stm32cube生成,使用者只需要會用stm32cube就行。2 gpio輸出void led gpio config void 3 gpio輸入void key gpio config void 4 外部中斷void exti key config void void ext...

STM32 HAL庫學習筆記

1 普通函式與 函式的區別 對普通函式的呼叫 呼叫程式發出對普通函式的呼叫後,程式執行立即轉向被呼叫函式執行,直到被呼叫函式執行完畢後,再返 用程式繼續執行。從發出呼叫的程式的角度看,這個過程為 呼叫 等待被呼叫函式執行完畢 繼續執行 對 函式呼叫 呼叫程式發出對 函式的呼叫後,不等函式執行完畢,立...

STM32 HAL庫 韌體庫 公升級

1 使用官方提供的新功能。2 上個版本有bug,下個版本bug解決了的情況是可能的。不過,上個版本沒bug,下個版本有bug的情況是有的 微小概率事件 開啟 stm32h7xx.h ctrl f搜尋 version 1 通過官網獲取最新hal庫 1 2keil官網經常會卡著顯示不了後續內容,這時可以...