此程序的作用是初始化按键和LCD1602的控制引脚,使得按键可以被检测,LCD1602可以进行数据的输入输出。具体操作包括:

  1. 打开GPIOB外设时钟使能,允许使用该外设。

  2. 配置GPIOB的Pin12、Pin13、Pin14为输入模式,启用上拉电阻。

  3. 配置GPIOB的Pin9为输出模式,初始化输出低电平。

  4. 设置GPIOB的Pin9输出速率为50MHz。

  5. 完成GPIOB的初始化,将LCD1602的RS、RW、EN引脚配置为输出模式,并输出低电平。

void Key_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//ʹÄÜPAʱÖÓ
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; 
	GPIO_Init(GPIOB,&GPIO_InitStructure);
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;  // LCD1602 RS-RW-EN?
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   //ÍÆÍìÊä³ö
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   //Êä³öËÙ¶È50MHZ
	GPIO_Init(GPIOB, &GPIO_InitStructure);   //GPIOC
	GPIO_ResetBits(GPIOB, GPIO_Pin_9);
}

代码解读:

  • RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE):使能GPIOB外设时钟,允许访问GPIOB端口。
  • GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14:配置GPIOB的Pin12、Pin13、Pin14为按键输入引脚。
  • GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU:将Pin12、Pin13、Pin14设置为输入模式,并启用上拉电阻。
  • GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9:配置GPIOB的Pin9为LCD1602的控制引脚。
  • GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP:将Pin9设置为推挽输出模式。
  • GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz:设置Pin9的输出速度为50MHz。
  • GPIO_ResetBits(GPIOB, GPIO_Pin_9):初始化Pin9为低电平。

通过以上步骤,完成了按键和LCD1602的控制引脚初始化,使程序能够正常使用按键并控制LCD1602进行数据的输入输出。

STM32按键和LCD1602初始化代码解析

原文地址: https://www.cveoy.top/t/topic/nRnh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录