写一个stm32f103RCT6按键中断程序,按键引脚为PC9
时间: 2024-04-29 10:24:49 浏览: 105
这是一个技术问题,我可以为您提供代码:
``` c
#include "stm32f103rc.h"
void EXTI9_5_IRQHandler(void) {
if (GPIOC->IDR & GPIO_IDR_IDR9) {
// PC9 按键按下
}
// 清除中断标志位
EXTI->PR |= EXTI_PR_PR9;
}
void init_GPIO(void) {
// 使能 GPIOC 时钟
RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;
// PC9 配置为输入模式,上拉输入
GPIOC->CRH &= ~(GPIO_CRH_MODE9 | GPIO_CRH_CNF9);
GPIOC->CRH |= GPIO_CRH_CNF9_1 | GPIO_CRH_MODE9_0;
// 外部中断线 9 配置
EXTI->IMR |= EXTI_IMR_MR9; // 使能线路 9
EXTI->FTSR |= EXTI_FTSR_TR9; // 下降沿触发
NVIC_EnableIRQ(EXTI9_5_IRQn); // 使能 NVIC 中断线 5 至 9
}
int main(void) {
init_GPIO();
while (1) {
// 做一些其它事情,例如读取传感器等
// 进入低功耗模式等待中断
__WFI();
}
}
```
希望对您有所帮助。
阅读全文