stm32F103ZE抢答程序代码
时间: 2024-06-18 22:06:24 浏览: 197
STM32F103ZE抢答程序是一种基于STM32F103ZE微控制器的应用程序。该程序旨在通过按键抢答的方式来测试参与者的反应速度和答题能力。以下是该程序的主要代码:
```c
#include "stm32f10x.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "usart.h"
u8 key = 0; //定义全局变量
int main(void)
{
delay_init();
NVIC_Configuration();
LED_Init();
KEY_Init();
USART1_Init();
while (1)
{
if (key == 1)
{
USART_SendData(USART1, '1'); //发送数据
LED1 = !LED1; //LED1闪烁
key = 0; //清零key值
}
if (key == 2)
{
USART_SendData(USART1, '2'); //发送数据
LED2 = !LED2; //LED2闪烁
key = 0; //清零key值
}
if (key == 3)
{
USART_SendData(USART1, '3'); //发送数据
LED3 = !LED3; //LED3闪烁
key = 0; //清零key值
}
if (key == 4)
{
USART_SendData(USART1, '4'); //发送数据
LED4 = !LED4; //LED4闪烁
key = 0; //清零key值
}
}
}
void EXTI15_10_IRQHandler(void) //外部中断服务函数
{
delay_ms(10); //消抖
if (KEY0 == 0)
{
key = 1; //记录按键值
}
else if (KEY1 == 0)
{
key = 2; //记录按键值
}
else if (KEY2 == 0)
{
key = 3; //记录按键值
}
else if (KEY_UP == 0)
{
key = 4; //记录按键值
}
EXTI_ClearITPendingBit(EXTI_Line15 | EXTI_Line14 | EXTI_Line13 | EXTI_Line0); //清除标志位
}
```
该程序使用了STM32F103ZE微控制器的GPIO外部中断功能和USART串口通信功能,通过按下不同的按键来触发外部中断,从而实现抢答功能。当按下不同的按键时,程序会向串口发送相应的数据,并且对应的LED灯会闪烁。
阅读全文