原理图
实物图
main.c
#include "stm32f10x.h"
#include "timer.h"
#include "matrix_key.h"
#include "usart.h"
/*
接线:
4X4矩阵按键
行: PA0 ~ PA3
列: PA4 ~ PA7
*/
int main()
{
usart1_init(115200); //串口1初始化 用于输出键值
matrix_key_init(); //矩阵按键初始化
timer3_init(); //定时器3初始化 用于去检测按键
while(1)
{
matrix_key_process(); //矩阵按键检测和处理
}
}
//定时器3中断
void TIM3_IRQHandler(void)
{
if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
{
key_flag++;
}
TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
}
matrix_key.c
#include "usart.h"
//配