
刚用cube不久对HAL库不熟悉,对于callback这个函数仅仅看hal library无法知道他的道道。 再工程里面一个名叫stm32f1xx_hal_gpio.h的头文件中有这么个函数定义。 原来cubemx会自动设置好相应的 HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin),使用中断函数只需要在 HAL_GPIO_EXTI_Callback(GPIO_Pin)中写入你所需执行的逻辑即可。0 o. f$ B" g# i! t: @( b ================================================================== void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)1 ^1 x; b. x1 [/ U) U1 P2 @ {. O. j: H1 }1 u, O9 l4 U7 q /* EXTI line interrupt detected */ if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET) { - a' f# \# P( ^$ t __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); HAL_GPIO_EXTI_Callback(GPIO_Pin);4 Y4 K' X" n3 I: P) S } } =============================================================== void EXTI15_10_IRQHandler(void) { /* USER CODE BEGIN EXTI15_10_IRQn 0 */2 z0 C9 T1 k; ^ a4 d) H i4 l! e+ G* I+ P+ f- q; G /* USER CODE END EXTI15_10_IRQn 0 */ 6 U% R0 S2 N* v( Y /* USER CODE BEGIN EXTI15_10_IRQn 1 */ / m* p* |3 x& i5 } /* USER CODE END EXTI15_10_IRQn 1 */; B" l* L3 i- g. m3 C7 E0 d9 J }' }. b0 P8 p- ^% B2 c! t ; w, {+ O: c: m% U" M& A0 c- u; p =============================================================== z+ P: E: J+ w6 Z7 o . E Y- G+ E: L2 R6 B1 j+ H9 F+ u4 K6 Q 写的恨水,请大虾们与各位海涵。如果有好的HAL学习方法也请各位多多赐教。 |
这个其实怎么说,HAL的库,我感觉比标准库稍稍麻烦一些。但是毕竟先入为主,可能更多的人更习惯于标准库,我也在适应,也想转HAL的库。毕竟可以结合MX工具来的。 |
HAL的库不易用,我换回标准库了。没必要大统一。 |
有没有人讲讲hal库 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
现在标准库已经停更了,st准备主推hal库,但是培训并没有跟上,第三方关于cube的学习资料也很少。等把st总会不断完善的。 |