我想用stm32控制1602液晶 编写了如下程序
但是液晶上没有出现预期的光标闪烁
请重点看看红字部分
#include<stm32f10x_lib.h>
#include"delay.h"
#include"sys.h"
#define rs PAout(3)
#define rw PAout(4)
#define en PAout(5)
/******A,B口初始化*******/
void dk_init(void)
{
RCC->APB2ENR|=1<<3;//使能PB口时钟
RCC->APB2ENR|=1<<2;
GPIOB->CRL&=0x0;
GPIOB->CRL|=0x33333333;//PB0-7全输入
GPIOB->ODR=0xff;//PB0-7输出高
GPIOA->CRL&=0xff000fff;
GPIOA->CRL|=0x333000;//PA3-5输入
GPIOA->ODR=3<<4;//PA3-5输出高
}
/*******请问以下命令格式正确吗?******/
void write_com(u8 com)
{
rs=0;rw=0;en=0;
GPIOB->ODR=com;//主要是这一句正确吗??
delay_ms(5);
en=1;
delay_ms(5);
en=0;
}
void write_dat(u8 dat)
{
rs=1;rw=0;en=0;
GPIOB->ODR=dat;
delay_ms(5);
en=1;
delay_ms(5);
en=0;
}
void 1602_init()
{
write_com(0x38);
write_com(0x01);
write_com(0x0f);
write_com(0x80);
}
int main(void)
{
Stm32_Clock_Init(9);
delay_init(72);
dk_init();
1602_init();
while(1);
}
|