lcd12864 A0接GPIOA_Pin8, WR接GPIOA_Pin9, RD接GPIOA_Pin10, CS接GPIOA_Pin11,数据选择端DB0-DB1接GPIOA_Pin0-GPIO_Pin7基于stm32103如何写初始化代码
时间: 2024-01-21 18:20:07 浏览: 57
以下是基于STM32F103的LCD12864初始化代码,可以根据需要进行修改:
```c
#include "stm32f10x.h"
#define LCD12864_GPIO GPIOA
#define LCD12864_A0_PIN GPIO_Pin_8
#define LCD12864_WR_PIN GPIO_Pin_9
#define LCD12864_RD_PIN GPIO_Pin_10
#define LCD12864_CS_PIN GPIO_Pin_11
#define LCD12864_DB0_PIN GPIO_Pin_0
#define LCD12864_DB1_PIN GPIO_Pin_1
#define LCD12864_DB2_PIN GPIO_Pin_2
#define LCD12864_DB3_PIN GPIO_Pin_3
#define LCD12864_DB4_PIN GPIO_Pin_4
#define LCD12864_DB5_PIN GPIO_Pin_5
#define LCD12864_DB6_PIN GPIO_Pin_6
#define LCD12864_DB7_PIN GPIO_Pin_7
void LCD12864_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = LCD12864_A0_PIN | LCD12864_WR_PIN | LCD12864_RD_PIN | LCD12864_CS_PIN |
LCD12864_DB0_PIN | LCD12864_DB1_PIN | LCD12864_DB2_PIN | LCD12864_DB3_PIN |
LCD12864_DB4_PIN | LCD12864_DB5_PIN | LCD12864_DB6_PIN | LCD12864_DB7_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LCD12864_GPIO, &GPIO_InitStructure);
// 初始化LCD12864
GPIO_SetBits(LCD12864_GPIO, LCD12864_A0_PIN | LCD12864_WR_PIN | LCD12864_RD_PIN | LCD12864_CS_PIN |
LCD12864_DB0_PIN | LCD12864_DB1_PIN | LCD12864_DB2_PIN | LCD12864_DB3_PIN |
LCD12864_DB4_PIN | LCD12864_DB5_PIN | LCD12864_DB6_PIN | LCD12864_DB7_PIN);
// 按照LCD12864的初始化步骤进行初始化
GPIO_ResetBits(LCD12864_GPIO, LCD12864_CS_PIN);
GPIO_ResetBits(LCD12864_GPIO, LCD12864_WR_PIN);
GPIO_Write(LCD12864_GPIO, LCD12864_DB0_PIN | LCD12864_DB1_PIN | LCD12864_DB2_PIN | LCD12864_DB3_PIN |
LCD12864_DB4_PIN | LCD12864_DB5_PIN | LCD12864_DB6_PIN | LCD12864_DB7_PIN);
GPIO_SetBits(LCD12864_GPIO, LCD12864_A0_PIN);
GPIO_SetBits(LCD12864_GPIO, LCD12864_WR_PIN);
GPIO_SetBits(LCD12864_GPIO, LCD12864_CS_PIN);
}
```
以上代码中,我们使用了`GPIO_InitTypeDef`结构体来对GPIO进行初始化,通过`GPIO_InitStructure.GPIO_Pin`指定要初始化的GPIO引脚,通过`GPIO_InitStructure.GPIO_Mode`指定GPIO的工作模式,这里我们使用推挽输出(`GPIO_Mode_Out_PP`),通过`GPIO_InitStructure.GPIO_Speed`指定GPIO的输出速率。
在初始化函数中,我们首先使能了GPIOA的时钟,然后对LCD12864的各个引脚进行了初始化,最后按照LCD12864的初始化步骤进行了初始化。
需要注意的是,LCD12864的引脚连接方式可能与不同的开发板或者电路设计有所不同,以上代码中的引脚连接方式仅供参考,具体使用时需要根据实际情况进行修改。
阅读全文