这里附上的是主程序部分和电路连接
这里用的12864液晶是5v的,电路链接部分 RS PE2 RW PE4 EN PE6 15口PSB串并 PE3
- #include "stm32f10x.h"
- GPIO_InitTypeDef GPIO_InitStructure;
- #define RS_SET GPIO_SetBits(GPIOE, GPIO_Pin_2)
- #define RS_CLR GPIO_ResetBits(GPIOE, GPIO_Pin_2)
- #define RW_SET GPIO_SetBits(GPIOE, GPIO_Pin_4)
- #define RW_CLR GPIO_ResetBits(GPIOE, GPIO_Pin_4)
- #define EN_SET GPIO_SetBits(GPIOE, GPIO_Pin_6)
- #define EN_CLR GPIO_ResetBits(GPIOE, GPIO_Pin_6)
- #define PSB_SET GPIO_SetBits(GPIOE, GPIO_Pin_3)
- #define PSB_CLR GPIO_ResetBits(GPIOE, GPIO_Pin_3)
- #define DATA_IO GPIOC->ODR
- void RCC_Configuration(void);
- void LCD12864_Config(void);
- void Delay_nus(__IO uint32_t nCount);
- void Delay_mus(__IO uint32_t nCount);
- uint8_t table[]="做我女朋友吧!";
- void write_12864com(uint8_t com)
- {
- RW_CLR;
- RS_CLR;
- Delay_nus(500);
- DATA_IO=com;
- EN_SET;
- Delay_nus(1000);
- EN_CLR;
- Delay_nus(1000);
- }
- void write_12864dat(uint8_t dat)
- {
- RW_CLR;
- RS_SET;
- Delay_nus(500);
- DATA_IO=dat;
- EN_SET;
- Delay_nus(1000);
- EN_CLR;
- Delay_nus(1000);
- }
- void init12864lcd(void)
- {
- Delay_mus(500);
- write_12864com(0x30);
- Delay_nus(500);
- write_12864com(0x30);
- Delay_nus(500);
- write_12864com(0x0f);
- Delay_nus(500);
- write_12864com(0x01);
- Delay_nus(25);
- write_12864com(0x06);
- Delay_nus(2500);
- write_12864com(0x0c);
- Delay_nus(500);
- }
- void display(void)
- {
- uint8_t i;
- write_12864com(0x80);
- for(i=0;i<14;i++)
- {
- write_12864dat(table[i]);
- Delay_mus(50);
- }
- }
- void LCD12864_Config(void)
- {
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOC , ENABLE);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_6;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOE, &GPIO_InitStructure);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3
- |GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOC, &GPIO_InitStructure);
- }
- int main(void)
- {
- RCC_Configuration(); //系统时钟配置
- LCD12864_Config();
- PSB_SET;
- init12864lcd();
- while (1)
- {
- display();
- }
- }
- void RCC_Configuration(void)
- {
- SystemInit();
- }
- void Delay_nus(uint32_t nCount)
- {
- uint32_t j;
- while(nCount--)
- {
- j=8;
- while(j--);
- }
- }
- void Delay_mus(uint32_t nCount)
- {
- while(nCount--)
- Delay_nus(1100);
- }