|
刚用cube不久对HAL库不熟悉,对于callback这个函数仅仅看hal library无法知道他的道道。$ G$ B- I4 y4 p& J+ x 再工程里面一个名叫stm32f1xx_hal_gpio.h的头文件中有这么个函数定义。 原来cubemx会自动设置好相应的 HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin),使用中断函数只需要在 HAL_GPIO_EXTI_Callback(GPIO_Pin)中写入你所需执行的逻辑即可。7 u4 j2 M) @4 M; c+ u8 A. j ==================================================================, G1 u1 B! w9 m% v" g3 \! n void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)$ ?% b1 o! R. F4 k0 Y { /* EXTI line interrupt detected */ if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET) * z1 H3 m0 Z2 u+ f" S { - Z- A& O% @4 p# O7 j: i/ L8 X __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);( o; s6 |7 @9 i HAL_GPIO_EXTI_Callback(GPIO_Pin);% j7 q# e4 M, h4 y, a$ Z/ M } } ===============================================================- b5 j+ d& ^. _' M; @/ e! C, W void EXTI15_10_IRQHandler(void) [- ] N1 i/ v {4 A {: G0 D8 z2 H. f& l! Z /* USER CODE BEGIN EXTI15_10_IRQn 0 */ ; t; k% U5 b/ Q3 u- F /* USER CODE END EXTI15_10_IRQn 0 */! X9 O: U+ B4 ]. Q! h: `8 y% n) @4 Z 0 }! H) G7 ]' p* z% Q, a! a /* USER CODE BEGIN EXTI15_10_IRQn 1 */1 F; V+ N: W: D- X7 w, h Z /* USER CODE END EXTI15_10_IRQn 1 */ }& O# z% o- G, u- B( } =============================================================== - s& e- \0 m& z+ [/ x K 写的恨水,请大虾们与各位海涵。如果有好的HAL学习方法也请各位多多赐教。+ F1 J* i# i5 p, F ' y- K m- F% ^: T& H7 P2 H2 x |
| 这个其实怎么说,HAL的库,我感觉比标准库稍稍麻烦一些。但是毕竟先入为主,可能更多的人更习惯于标准库,我也在适应,也想转HAL的库。毕竟可以结合MX工具来的。 |
| HAL的库不易用,我换回标准库了。没必要大统一。 |
| 有没有人讲讲hal库 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
| 现在标准库已经停更了,st准备主推hal库,但是培训并没有跟上,第三方关于cube的学习资料也很少。等把st总会不断完善的。 |
微信公众号
手机版