历史上的今天
今天是:2024年09月24日(星期二)
2019年09月24日 | STM32F1x系列——12864
2019-09-24 来源:eefocus
12864的引脚图:

由图可知PSB一开始要拉高,可以接到电源上,VCC接5v电源,VSS接地,要是12864产生背光,将BLA接5v电源,BLK接地。其余引脚可以自定义接到STM32的IO上。
在接STM32的IO后,程序中应首先要对IO进行初始化,进行端口使能等操作,12864有其自带的中文字库,在程序中对字库初始化,同时写好传送数据指令的函数,输出显示内容,下面是关于12864的代码:
#include "stm32f10x.h"
#include "delay.h"
#include "stm32f10x_gpio.h"
#define V0 PCout(1)
#define RS PCout(3)
#define WRD PAout(8)
#define E PAout(9)
#define DB0 PAout(0)
#define DB1 PAout(1)
#define DB2 PAout(2)
#define DB3 PAout(3)
#define DB4 PAout(4)
#define DB5 PAout(5)
#define DB6 PAout(6)
#define DB7 PAout(7)
#define NC PEout(10)
#define RES PEout(12)
#define VOUT PBout(14)
void _Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOE, ENABLE); //使能PB,PE端口时钟
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_Pin_8|GPIO_Pin_9; //LED0-->PB.5 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIOA
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOE, &GPIO_InitStructure);
}
unsigned int temp ;
void TransferData(char data1,unsigned char DI) //传送数据或者命令,当DI=0是,传送命令,当DI=1,传送数据.
{
WRD=0;
RS=DI;
delay_ms(1);
temp = (temp&0xff00)|data1 ;
GPIO_Write(GPIOA,temp) ;
E=1;
delay_ms(1);
E=0;
}
void initinal(void) //LCD字库初始化程序
{
delay_ms(40);
RES=0; //复位
delay_ms(1);
RES=1; //复位置高
delay_ms(10);
TransferData(0x30,0); //Extended Function Set :8BIT设置,RE=0: basic instruction set, G=0 :graphic display OFF
delay_ms(100);
TransferData(0x30,0); //Function Set
delay_ms(37);
TransferData(0x08,0); //Display on Control
delay_ms(100);
TransferData(0x10,0); //Cursor Display Control光标设置
delay_ms(100);
TransferData(0x0C,0); //Display Control,D=1,显示开
delay_ms(100);
TransferData(0x01,0); //Display Clear
delay_ms(10);
TransferData(0x06,0); //Enry Mode Set,光标从右向左加1位移动
delay_ms(100);
}
void lcd_mesg(unsigned char *adder1 ,unsigned char locate,unsigned int number)
{
unsigned char i;
TransferData(locate,0); //Set Graphic Display RAM Address
delay_ms(100);
for(i=0;i TransferData(*adder1,1); adder1++; } } int main(void) { delay_init(); _Init(); initinal() ; while(1) { lcd_mesg("日照香炉生紫烟,",0x80,16) ; lcd_mesg("遥看瀑布挂前川。",0x90,16) ; lcd_mesg("飞流直下三千尺,",0x88,16) ; lcd_mesg("疑是银河落九天。",0x98,16) ; // TransferData (0x01,0) ; //清屏 } } 仿真下载后:
史海拾趣
|
本书介绍了变换器的动态建模以及控制电路设计的方法, 介绍了各种变换器拓扑的动态特性, 以及不同的控制方法和不同工作模式对变换器动态特性的影响。 本书内容丰富、 实用性强, 通过大量开关变换器电路实验, 揭示了各种开关变换器和控制方法的特 ...… 查看全部问答> |
|
完了完了,完成不了了,STM32F103产生1us~80us脉宽的方波,是不是不行啊 STM32F103产生1us~80us脉宽的方波,是不是不行啊,这个是不是用CPLD或者是FPGA更好 … 查看全部问答> |
|
其实我在体验这个系统的时候就猜到了这个系统除了python肯定也是能跑QT的。 因为其做的是Debian系统,有了系统我们安装QT就是非常的简单了。 安装QT前还是把我们的源更换下。 # 默认注释了源码镜像以提 ...… 查看全部问答> |
|
【行空板 Python编程学习主控板】基于行空板的便携式果汁光谱分析仪 本帖最后由 HonestQiao 于 2022-11-21 10:53 编辑 目录: 一、想法起源 二、硬件材料 三、准备工作 四、原理图与实物连线 五、逻辑设计与代码编写 六、实测步骤 七、总结 八、花絮 一、想法起源 最近在行 ...… 查看全部问答> |
|
在刚过去的十月,智能家居产业发生了一件里程碑事件。 由 550 家科技公司组成并致力于开发物联网开放标准的国际组织 CSA 连接标准联盟在十月初宣布,Matter 1.0 技术规范正式发布,认证程序同时开放。自此以后,来自物联网生态各个环节的联 ...… 查看全部问答> |
|
智能家居的协议标准有很多,Zigbee,Thread,6LowPan,Wifi,Z-wave,Bluetooth Mesh等等。在过去十年,没有一个协议标准能一统智能家居低功耗局域网,也没有一个协议标准能使得不同厂家的产品真正做到互联互通。纵观2010-2020的十年,是国内短距离 ...… 查看全部问答> |
|
本帖最后由 兰博 于 2022-11-21 14:18 编辑 什么是matter? Matter 有望使不同的设备和生态系统能够很好地发挥作用。设备制造商需要遵守 Matter 标准,以确保他们的设备与智能家居和语音服务兼容,例如亚马逊的 Alexa、苹果的 Siri、谷歌的 A ...… 查看全部问答> |
|
matter何时到来? matter已经存在多年。第一个版本原定于 2020 年底发布,但被推迟到次年,更名为 Matter,然后被吹捧为夏季发布。又一次延迟之后,Matter 1.0 规范和认证程序现在终于准备就绪。提供SDK、工具和测试用例,并开放8个授权测试实验 ...… 查看全部问答> |




