int main
(void
)}
這個是主函式中首要處理的函式:主要用來初始化hal庫,即用來初始化所有的外圍裝置,flash介面和系統定時器,系統中斷組,初始化低級別硬體。return hal_ok向函式返回乙個值,代表函式編譯成功。
hal_statustypedef hal_init
(void)
*/hal_mspinit()
;return
hal_ok
;}
void
systemclock_config
(void
)//選中pll作為系統時鐘源並且配置hclk,pclk1和pclk2
rcc_clkinitstruct.clocktype =
rcc_clocktype_hclk
|rcc_clocktype_sysclk
|rcc_clocktype_pclk1
|rcc_clocktype_pclk2
;//設定系統時鐘時鐘源為pll
rcc_clkinitstruct.sysclksource =
rcc_sysclksource_pllclk
;//ahb分頻係數為1
rcc_clkinitstruct.ahbclkdivider =
rcc_sysclk_div1
;//apb1分頻係數為4
rcc_clkinitstruct.apb1clkdivider =
rcc_hclk_div4
;//apb2分頻係數為2
rcc_clkinitstruct.apb2clkdivider =
rcc_hclk_div2
;//同時設定flash延時週期為5ws,也就是6個cpu週期。if(
hal_rcc_clockconfig
(&rcc_clkinitstruct,
flash_latency_5)!=
hal_ok
)/*則當hse時鐘啟用失敗時,系統會自動切換到hsi作為時鐘源,並產生乙個nmi不可遮蔽中斷。
*/hal_rcc_enablecss()
;}
void
mx_gpio_init
(void);
//定義結構體變數gpio_initstruct
/* gpio埠時鐘開啟 */
__hal_rcc_gpioe_clk_enable()
;__hal_rcc_gpioh_clk_enable()
;__hal_rcc_gpioa_clk_enable()
;/*配置gpio初始輸出電平 */
hal_gpio_writepin
(gpioe
,gpio_pin_5
|gpio_pin_6
,gpio_pin_set);
hal_gpio_writepin
(gpioh
,gpio_pin_9
,gpio_pin_set);
/*配置gpio引腳*/
gpio_initstruct.pin =
gpio_pin_5
|gpio_pin_6
;//引腳號 5 6
gpio_initstruct.mode =
gpio_mode_output_pp
;//引腳輸出模式 pp推挽輸出
gpio_initstruct.pull =
gpio_pullup
;// 引腳上拉模式
gpio_initstruct.speed =
gpio_speed_freq_low
;// 輸出速度為低速
hal_gpio_init
(gpioe
,&gpio_initstruct)
;// 配置埠引腳
/*configure gpio pin : ph9 */
gpio_initstruct.pin =
gpio_pin_9
; gpio_initstruct.mode =
gpio_mode_output_pp
; gpio_initstruct.pull =
gpio_pullup
; gpio_initstruct.speed =
gpio_speed_freq_low
;hal_gpio_init
(gpioh
,&gpio_initstruct)
;}
while(1
)
STM32 HAL時鐘初始化
由cubmx生成的stm32f1工程的內部時鐘和外部時鐘定義在stm32f1xx hal config.h中的 if defined hse value define hse value uint32 t 16000000 value of the external oscillator in hz...
stm32埠初始化
今天上課,點亮數碼管,gpio初始化後,數碼管上有一段亂碼。要讓這亂碼消失掉,需要改變gpio初始化的順序。在gpio埠使能後,要加odr 埠暫存器 控制 gpio inittypedef gpio initstructure 定義乙個結構體 rcc apb2periphclockcmd rcc a...
STM32HAL庫中斷函式原理
hal uart receive it函式分析 hal statustypedef hal uart receive it uart handletypedef huart,uint8 t pdata,uint16 t size process locked 設定程序鎖 可以理解為接受過程中不被其他...