mm32f103cbt6按键例程
时间: 2024-01-16 10:02:24 浏览: 72
MM32F103xx_n_Lib_Samples_V1.10_SC.zip_C#__C#_
你好!以下是一个简单的基于MM32F103CBT6的按键例程,你可以参考:
```c
#include "MM32F103.h"
void GPIO_Configuration(void);
void EXTI_Configuration(void);
int main(void)
{
GPIO_Configuration();
EXTI_Configuration();
while (1)
{
// 在这里可以执行其他操作
}
}
void GPIO_Configuration(void)
{
RCC->APB2ENR |= RCC_APB2Periph_GPIOA; // 使能GPIOA时钟
GPIOA->CRL &= 0xFFFFFFF0; // 配置PA0为输入模式
GPIOA->CRL |= 0x00000008;
}
void EXTI_Configuration(void)
{
RCC->APB2ENR |= RCC_APB2Periph_AFIO; // 使能AFIO时钟
AFIO->EXTICR[0] &= 0xFFFFFFF0; // 选择EXTI0对应的GPIOA
AFIO->EXTICR[0] |= 0x00000000;
EXTI->FTSR |= EXTI_FTSR_TR0; // 下降沿触发
EXTI->IMR |= EXTI_IMR_MR0; // 使能中断
NVIC_EnableIRQ(EXTI0_IRQn); // 使能中断向量
EXTI->PR = EXTI_PR_PR0; // 清除中断挂起标志
}
void EXTI0_IRQHandler(void)
{
if (EXTI->PR & EXTI_PR_PR0) // 判断是否是EXTI0中断
{
// 执行按键触发后的操作
EXTI->PR = EXTI_PR_PR0; // 清除中断挂起标志
}
}
```
这是一个简单的按键例程,配置了PA0作为输入引脚,并使能了外部中断。当按键按下时,会触发EXTI0_IRQHandler中断处理函数,你可以在其中执行按键触发后的操作。需要注意的是,在使用此例程时,需要根据具体的硬件连接情况进行相应的修改。
希望对你有帮助!如果有任何问题,请随时提问。
阅读全文