在proteus里仿真正常,但是实物上显示玩最后一个字符 u 后 还会继续显示u 。屏幕满了之后会从左上角开始 覆盖前面的字符。最后满屏都是u。
先贴代码
- #include "stm32f10x.h"
- #define Set_RS GPIO_SetBits(GPIOB,GPIO_Pin_0)
- #define Set_RW GPIO_SetBits(GPIOB,GPIO_Pin_1)
- #define Set_EN GPIO_SetBits(GPIOB,GPIO_Pin_3)
- #define CLR_RS GPIO_ResetBits(GPIOB,GPIO_Pin_0)
- #define CLR_RW GPIO_ResetBits(GPIOB,GPIO_Pin_1)
- #define CLR_EN GPIO_ResetBits(GPIOB,GPIO_Pin_3)
- void delay_nus(unsigned long n)
- {
- unsigned long j;
- while(n--)
- { j=8;
- while(j--);
- }
- }
- void delay_nms(unsigned long n)
- {
- while(n--)
- delay_nus(1100);
- }
- //unsigned char table[]="abcdefghijklmvop";
- //u8 table[]="abcdefghijklmvop";
- u8 table1[]="->China Yancheng" ;
- u8 table2[]="Welcome To You" ;
- //void Send_Com(unsigned char Send_Com)
- void Send_Com(int Send_Com)
- {
- CLR_RS;
- delay_nms(1);
- CLR_RW;
- delay_nms(1);
- //CLR_EN;
- Set_EN;
- delay_nms(1);
- GPIO_Write(GPIOA,(u16)Send_Com);
- delay_nms(5);
- CLR_EN;
- delay_nms(5);
- Set_EN;
- }
- void Send_Dat(int Send_Dat)
- {
- Set_RS;
- delay_nms(1);
- CLR_RW;
- delay_nms(1);
- Set_EN;
- delay_nms(1);
- GPIO_Write(GPIOA,Send_Dat);
- delay_nms(5);
- CLR_EN;
- delay_nms(5);
- Set_EN;
- }
- void init()
- {
- Set_EN;
- delay_nms(15);
- Send_Com(0x38);
- delay_nms(5);
- Send_Com(0x38);
- delay_nms(5);
- Send_Com(0x38);
- delay_nms(5);
- Send_Com(0x38);
- delay_nms(5);
- Send_Com(0x08);
- delay_nms(1);
- Send_Com(0x01);
- delay_nms(1);
- Send_Com(0x06);
- delay_nms(1);
- Send_Com(0x0c);
- delay_nms(1);
- }
- void GPIO_Configuration(void)
- {
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB| RCC_APB2Periph_GPIOC, ENABLE);
- GPIO_InitTypeDef GPIO_InitStructure;
- GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_3;
- GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
- GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
- GPIO_Init(GPIOB,&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_Speed=GPIO_Speed_50MHz;
- GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
- GPIO_Init(GPIOA,&GPIO_InitStructure);
- }
- int main(void)
- {
- //unsigned char num;
- GPIO_Configuration();
- delay_nms(500);
- init();
- u8 i;
- //while(1)
- // {
- Send_Com(0x80);//???????
- for(i=0;i < 16;i++)
- {
- Send_Dat(table1[i]);
- delay_nms(5);
- }
- Send_Com(0x80+0x40);//???????
- delay_nms(5);
- for(i=0;i < 14;i++)
- {
- Send_Dat(table2[i]);
- delay_nms(5);
- }
- while(1);
- //}
-
- //delay_nms(5);
- //Send_Com(0x80);
- // delay_nms(5);
- //
- //for(num=0;num<=15;num++)
- //{
- //Send_Dat(table[num]);
- //delay_nms(300);
- //}
- //while(1);
- }
复制代码
|