本帖最后由 zero949079783 于 2021-10-17 23:09 编辑
开发环境:VSCODE(gcc编译链)+STM32CubeMX(也可以使用HUAWEI-LiteOS-Studio) 。
代码:链接:https://pan.baidu.com/s/1uXfIR0GFQOBZPl1NfQP08w
提取码:6b0c External Interrupt Mode with Rising edge trigger detection(上升沿式外部中断模式) External Interrupt Mode with Falling edge trigger detection(下降沿式外部中断模式) External Interrupt Mode with Rising/Falling edge trigger detection(上升下降沿式外部中断模式) External Event Mode with Rising edge trigger detection(上升沿式外部置位模式) External Event Mode with Falling edge trigger detection(下降沿式外部置位模式) External Event Mode with Rising/Falling edge trigger detection(上升下降沿式外部置位模式)
- GPIO Pull-up/Pull-down(上下拉):默认设置为 No pull-up and no pull-down
- User Label(用户标签): 可以标记这个引脚是做什么用的,提高可读性。
NVIC - 根据需要设置Priority Group
- 勾选对应的中断使能(Enabled)
- 根据需要填写抢占优先级(Preemption Priority),次优先级(Sub Priority)
HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) 为回调函数。 普通函数与回调函数的区别:就是ST将中断封装,给使用者的API,就是标准库的中断函数 对普通函数的调用: 调用程序发出对普通函数的调用后,程序执行立即转向被调用函数执行,直到被调用函数执行完毕后,再返回调用程序继续执行。从发出调用的程序的角度看,这个过程为“调用-->等待被调用函数执行完毕-->继续执行” 对回调函数调用: 调用程序发出对回调函数的调用后,不等函数执行完毕,立即返回并继续执行。这样,调用程序执和被调用函数同时在执行。当被调函数执行完毕后,被调函数会反过来调用某个事先指定函数,以通知调用程序:函数调用结束。这个过程称为回调(Callback),这正是回调函数名称的由来。
|