你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

请教大家一下Cube 生成代码,中断函数的写法

[复制链接]
咱﹑旳青春 提问时间:2015-4-28 08:55 /
最近在学习使用 Cube 刚上手,就碰到这样一个问题, 如果我有4个按键,都是通过中断来检测的,那这样我需要有4个中断函数,但是 Cube生成的代码,都去调用 callback 了,  我向请问下我这种情况,代码应该怎么写? 写在哪里? 怎么去判断是哪个按键来的中断?
收藏 评论5 发布时间:2015-4-28 08:55

举报

5个回答
咱﹑旳青春 回答时间:2015-4-28 09:09:48
我想了一个方法,请大家看一下, 因为都是调用的 callback 函数, 所以我在主函数里面写了 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin),   然后在这个函数里面去判断是哪个按键来的中断, 再去进行相应的处理。 但是问题又来了,  如果我 PA10 和 PB 10  产生的中断都是 EXTI10  这个我就没办法判断了。
代码如下:/* USER CODE BEGIN 4 */
void USER_EXTI_S1(void)
{
        HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_9);
}
void USER_EXTI_S2(void)
{
        HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_8);
}
void USER_EXTI_S3(void)
{
        HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_7);
}
void USER_EXTI_S4(void)
{
        HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_6);
}
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
                if(GPIO_PIN_0 == GPIO_Pin)
                {
                        USER_EXTI_S1();
                }
                if(GPIO_PIN_1 == GPIO_Pin)
                {
                        USER_EXTI_S2();
                }
                if(GPIO_PIN_2 == GPIO_Pin)
                {
                        USER_EXTI_S3();
                }
                if(GPIO_PIN_10 == GPIO_Pin)
                {
                        USER_EXTI_S4();
                }
}


/* USER CODE END 4 */

庸浅的小羊羔 回答时间:2015-4-29 21:28:33
“PA10 和 PB 10  产生的中断都是 EXTI10”会这样吗?
colin2135 回答时间:2015-4-30 09:20:48
这个问题手册上已经写的很清楚了。
11.png
党国特派员 回答时间:2015-4-30 09:46:41
colin2135 发表于 2015-4-30 09:20
这个问题手册上已经写的很清楚了。

这才是正解。。。 blank.png

blank.png

blank.png

blank.png

blank.png

blank.png

blank.png

blank.png

blank.png

blank.png

stary666 回答时间:2015-4-30 12:44:53
自己写就行

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版