资源简介
在STM32F103ZET6上实现了 4*4按键,可以直接使用
代码片段和文件信息
#include “stm32f10x_lib.h“
#include “Delay.h“
#include “usart.h“
void RCC_Configuration(void);
void NVIC_Configuration(void);
unsigned char Get_KeyValue(void);
unsigned char const Key_Tab[4][4]=//键盘编码表
{
{‘1‘‘2‘‘3‘‘4‘}
{‘5‘‘6‘‘7‘‘8‘}
{‘9‘‘0‘‘A‘‘B‘}
{‘C‘‘D‘‘E‘‘F‘}
};
void main(void)
{
unsigned char i;
RCC_Configuration();
NVIC_Configuration();
USART1_Config();
while (1)
{
i=Get_KeyValue();
if(i!=0)//有按键按下
USART1_Putc(i);
}
}
/*******************************************************************************
* 函数 : void RCC_Configuration(void)
* 功能 : 配置不同的系统时钟
* 参数 :无
* 返回 :无
*******************************************************************************/
void RCC_Configuration(void)
{
ErrorStatus HSEStartUpStatus;
/* RCC system reset(for debug purpose) */
RCC_DeInit();
/* Enable HSE */
RCC_HSEConfig(RCC_HSE_ON);
/* Wait till HSE is ready */
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS)
{
/* Enable Prefetch Buffer */
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
/* Flash 2 wait state */
FLASH_SetLatency(FLASH_Latency_2);
/* HCLK = SYSCLK */
RCC_HCLKConfig(RCC_SYSCLK_Div1);
/* PCLK2 = HCLK */
RCC_PCLK2Config(RCC_HCLK_Div1);
/* PCLK1 = HCLK/2 */
RCC_PCLK1Config(RCC_HCLK_Div2);
/* PLLCLK = 8MHz * 9 = 72 MHz */
RCC_PLLConfig(RCC_PLLSource_HSE_Div1 RCC_PLLMul_9);
/* Enable PLL */
RCC_PLLCmd(ENABLE);
/* Wait till PLL is ready */
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}
/* Select PLL as system clock source */
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
/* Wait till PLL is used as system clock source */
while(RCC_GetSYSCLKSource() != 0x08)
{
}
}
}
//没有得到键值返回0,否则返回相应的键值
unsigned char Get_KeyValue(void)//使用PA0~PA7
{//使用线反转法
GPIO_InitTypeDef GPIO_InitStructure;
u8 i=5j=5;
u16 temp1temp2;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
相关资源
- STM32全系列芯片封装库,最齐全封装库
- STM32F407最小系统板(SWD口)
- STM32F103C8T6 LCD12864 串行通信
- STM32驱动ht1621b显示LCD
- STM32 F4系列所有原理图及PCB封装库
- cubeMX视频教程stm32hal库函数cubemx实战讲
- SPWM逆变器stm32例程及电路图仿真.zip
- MPU6050(STM32 DMP).rar
- STM32F407 485 MODBUS
- STM32 hal库操作ESP8266
- STM32 STM32F103C8T6 读取DS18B20温度数据例
- STM32 STM32F103C8T6 CAN从机+4DI2DO 硬件设计
- STM32外部计数器程序
- STMicroelectronics STM32及STM8全系列Altium
- 基于STM32cubeMX,STM32F103C8T6的PWM输出实
- US100超声波代码stm32
- 基于STM32电力数据采集系统的设计
- STM32 之DHT11驱动程序
- Arduino STM32 平衡小车之家平衡小车源码
- DS18B20仿真
- STM32串口封装源码,可直接调用
- STM32L4_硬件SPI配置_LL库版.rar
- STM 32 Nucleo H743zi芯片引脚图STM32 H732Z
- STM32的USART串口查询方式(库函数)
- STM32的PS2鼠标程序,亲测可用
- STM32F103RCT6使用DS1302时钟模块
- stm32F407光电编码器代码
- 音频信号FFT变换后节拍检测的软件.
- stm32f103zet6最小系统原理图
- STM32F103单片机输出SPWM波
评论
共有 条评论