标题:
stm32单片机解决控制5v的1602液晶
[打印本页]
作者:
为了丶梦想
时间:
2018-10-23 22:30
标题:
stm32单片机解决控制5v的1602液晶
IMG_2182.JPG
(1.89 MB, 下载次数: 48)
下载附件
2018-10-23 22:27 上传
IMG_2183.JPG
(1.99 MB, 下载次数: 35)
下载附件
2018-10-23 22:27 上传
本人学生菜鸟一枚,刚从51渡过。打算把51上实现的功能在stm32上面实现一遍, 遇到5v的1602 用了很长时间才搞定。目前所有的io口都是用的sn74h245来驱动的。 我遇到的问题就是 stm32 3.3v 驱动不了 还有就是延时的问题 ,有兴趣的可以试试。
stm32单片机源程序如下:
#include "stm32f10x.h"
#include "delay.h"
#define Set_RS GPIO_SetBits(GPIOB,GPIO_Pin_15)
//#define Set_RW GPIO_SetBits(GPIOB,GPIO_Pin_3)
#define Set_EN GPIO_SetBits(GPIOB,GPIO_Pin_2)
#define CLR_RS GPIO_ResetBits(GPIOB,GPIO_Pin_15)
#define CLR_RW GPIO_ResetBits(GPIOB,GPIO_Pin_3)
#define CLR_EN GPIO_ResetBits(GPIOB,GPIO_Pin_2)
GPIO_InitTypeDef GPIO_InitStructure;
unsigned char table[]="You are big Pig";
void Send_Com(unsigned char Send_Com)
{
CLR_RS;
GPIO_Write(GPIOA,Send_Com);
Delay_ms(10);
Set_EN;
Delay_ms(10);
CLR_EN;
}
void Send_Dat(unsigned char Send_Dat)
{
Set_RS;
GPIO_Write(GPIOA,Send_Dat);
Delay_ms(10);
Set_EN;
Delay_ms(10);
CLR_EN;
}
void init()
{
CLR_EN;
Send_Com(0x38);
Send_Com(0x0c);
Send_Com(0x06);
Send_Com(0x01);
}
void GPIO_Configuration(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15|GPIO_Pin_3|GPIO_Pin_2;
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();
init();
Send_Com(0x80);
for(num=0;num<=14;num++)
{
Send_Dat(table[num]);
Delay_ms(10);
}
while(1);
}
复制代码
所有资料51hei提供下载:
1602液晶显示.rar
(216.63 KB, 下载次数: 107)
2018-10-24 01:11 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1