完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
12864用的是北京青云的LCM12864K,PA0对复位引脚,PA1对应CS1,PA2对应A0,PB1对应SI,PB0对应SCL控制时钟,采用串口方式
#include <STM32f0xx.h> GPIO_InitTypeDef GPIO_InitStructure; void Delay(__IO uint32_t nCount) { for(; nCount != 0; nCount--); } /***************************************************** *函数名:GPIO_Config() *输出结果:无 *函数描述:设置GPIO端口的功能 *返回值:无 *输入参数:无 ********************************************************/ void GPIO_Config()//IO端口的初始化 { RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); //打开AHP总线上的GPIOC的时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1; //选择GPIOC的8、9端口 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; // 设置端口为输出模式 GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //把GPIOC的8、9端口设置为推挽模式 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOB, &GPIO_InitStructure); //GPIO初始化 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All; //选择GPIOC的8、9端口 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; // 设置端口为输出模式 GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //把GPIOC的8、9端口设置为推挽模式 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOA, &GPIO_InitStructure); //GPIO初始化 } void Sendbyte(__IO uint32_t dat)//发送位数据 { __IO uint32_t i; for(i=0;i<8;i++) { if(dat&0x80) //赋值一位数据 GPIO_SetBits(GPIOB, GPIO_Pin_1);//SI=1 else GPIO_ResetBits(GPIOB, GPIO_Pin_1);//SI=0 Delay(0x3f); GPIO_SetBits(GPIOB, GPIO_Pin_0);//SCL置高 Delay(0x3f); GPIO_ResetBits(GPIOB, GPIO_Pin_0);//SCL置低 Delay(0x3f); GPIO_SetBits(GPIOB, GPIO_Pin_0);//SCL置高 dat=dat<<1; //左移一位数据,继续向SI赋值数据 } } void write_com(__IO uint32_t com)//控制命令 { GPIO_SetBits(GPIOB, GPIO_Pin_0); GPIO_ResetBits(GPIOA, GPIO_Pin_1); //CS1=0 GPIO_ResetBits(GPIOA, GPIO_Pin_2); //A0=0 Sendbyte(com&0xf0); //送高四位指令 Sendbyte((com&0x0f)<<4); //送低四位指令 GPIO_SetBits(GPIOA, GPIO_Pin_1); //CS1=1 } void write_date(__IO uint32_t date) { GPIO_SetBits(GPIOB, GPIO_Pin_0); GPIO_ResetBits(GPIOA, GPIO_Pin_1); //CS1=0 GPIO_SetBits(GPIOA, GPIO_Pin_2); //A0=1 Sendbyte(date&0xf0); //送高四位指令 Sendbyte((date&0x0f)<<4); //送低四位指令 GPIO_SetBits(GPIOA, GPIO_Pin_1); //CS1=1 } void clear() { uint32_t i,page; for(page=0;page<8;page++) { write_com(0xb0|page); write_com(0x10); write_com(0x01); for(i=0;i<128;i++) write_date(0x00); } } void Init() { GPIO_SetBits(GPIOA, GPIO_Pin_0); //RES=1 Delay(0x3f); GPIO_ResetBits(GPIOA, GPIO_Pin_0); //RES=0 Delay(0x3f); GPIO_ResetBits(GPIOA, GPIO_Pin_0); write_com(0xe2);//复位 write_com(0x2f);//工作状态设置 write_com(0x81); write_com(0x31); write_com(0xa2); write_com(0xa0); write_com(0xc0); write_com(0x40); write_com(0xaf); //write_com(0xa5); } int main(void) { __IO uint32_t i,page; GPIO_Config(); Init(); clear(); while(1) { for(page=0;page<8;page++) { write_com(0xb0|page); write_com(0x10); write_com(0x01); for(i=0;i<128;i++) write_date(0xFF); } } } |
|
相关推荐
2个回答
|
|
{:1:}{:1:}{:1:}{:1:}{:1:}
|
|
|
|
清屏可以写一个命令清的,不知道你这款有没,我之前用的就有
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
iTOP-3A5000主控板龙芯架构外加机箱就是一台电脑主机
907 浏览 0 评论
迅为RK3568开发板EMMC镜像导出打包update.img
951 浏览 0 评论
飞凌嵌入式-ELFBOARD 硬件知识分享-ELF 2电源电路讲解
1403 浏览 0 评论
2108 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程介绍之烧写所需镜像
1728 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-30 01:52 , Processed in 0.561218 second(s), Total 74, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号