打印

基于GD32F450开发板的LCD5110屏显示

[复制链接]
2650|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 jinglixixi 于 2017-4-20 09:37 编辑

以最小系统面目出现的GD32F450开发板,若不为它配上一个合适的显示器件用起来将是一个比较棘手的事。
起初是使用老套路将I2C接口的双色OLED屏点亮,尝试了许多次没如意,只得暂时放弃,看起来GD32F450GD32F190相差还是比较大,无奈只好先改为LCD5110屏。
LCD5110屏还是比较好用的,且大家用的也比较多,具有实用价值。为了减少连线,这里采用的方式比较简便,就是直接将LCD5110屏插入开发板的插排上,以使LCD5110屏的引脚与GD32F450建立如下的连接:
2--GND--GND    3--SCE--PE2    4--RESET--PE5     5--D/C--PE6    6--SDIN--PE4
7--SCLK--PD0    8--LED--PD1

令人吐槽的是为什么宁愿空出一个引脚也不在该位置提供一个3.3VVDD,无奈只好飞一条电源线以使LCD5110工作,详见下图所示。

为使LCD5110正常运行,相应的引脚输出高、低电平的定义如下:
#define sce_1 gpio_bit_set(GPIOE, GPIO_PIN_2);
#define sce_0 gpio_bit_reset(GPIOE, GPIO_PIN_2);

#define dc_1 gpio_bit_set(GPIOE, GPIO_PIN_6);
#define dc_0 gpio_bit_reset(GPIOE, GPIO_PIN_6);

#define RST_1 gpio_bit_set(GPIOE, GPIO_PIN_5);
#define RST_0 gpio_bit_reset(GPIOE, GPIO_PIN_5);

#define LCD_SCLK_1 gpio_bit_set(GPIOD, GPIO_PIN_0);
#define LCD_SCLK_0 gpio_bit_reset(GPIOD, GPIO_PIN_0);

#define LCD_SDIN_1 gpio_bit_set(GPIOE, GPIO_PIN_4);
#define LCD_SDIN_0 gpio_bit_reset(GPIOE, GPIO_PIN_4);
对引脚的配置函数如下:
void SPI_CONFIG()
{
        rcu_periph_clock_enable(RCU_GPIOE);
        gpio_mode_set          (GPIOE, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE,   GPIO_PIN_2| GPIO_PIN_5| GPIO_PIN_6| GPIO_PIN_4);        
        gpio_output_options_set(GPIOE, GPIO_OTYPE_PP,    GPIO_OSPEED_50MHZ,GPIO_PIN_2| GPIO_PIN_5| GPIO_PIN_6| GPIO_PIN_4);        
        rcu_periph_clock_enable(RCU_GPIOD);
        gpio_mode_set          (GPIOD, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE,   GPIO_PIN_0| GPIO_PIN_1);        
        gpio_output_options_set(GPIOD, GPIO_OTYPE_PP,    GPIO_OSPEED_50MHZ,GPIO_PIN_0| GPIO_PIN_1);
        GPIO_BOP(GPIOD) = GPIO_PIN_1;
        RST_0;
        delay(100);
        RST_1;
        delay(100);
        RST_0;
        delay(100);
        RST_1;
        delay(100);
}
对应的初始化函数如下:
void LCD_init(void)
{
        LCD_write_byte(0x21,0);
        LCD_write_byte(0xc3,0);
        LCD_write_byte(0x10, 0);
        LCD_write_byte(0x20,0);
        LCD_write_byte(0x0C,0);
        LCD_clear();
}
在字符库及相关函数的配合下,使用如下的主函数即可得到图示的显示效果。
int main(void)
{
         SPI_CONFIG();
         LCD_init();
         LCD_write_english_string(0,0,"GD32 Colibri- ",0);
         LCD_write_english_string(0,1," - F450VE",0);
         LCD_write_english_string(0,3,"ARM Cortex-M4",0);
         LCD_write_english_string(0,5,"  2017.4.20",0);
         LED_Init();
         rcu_periph_clock_enable(RCU_GPIOB);
         gpio_mode_set  (GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE,   GPIO_PIN_4);        
         gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_4);        


沙发
戈卫东| | 2017-4-21 21:49 | 只看该作者
打劫!把板子交出来!

使用特权

评论回复
板凳
smilingangel| | 2017-4-22 11:59 | 只看该作者
MCu与屏幕的通讯方式是串行的哈

使用特权

评论回复
地板
zhangbo1985| | 2017-4-22 13:54 | 只看该作者
合理利用开发板的,,能学习很多的开发知识

使用特权

评论回复
5
jinglixixi|  楼主 | 2017-4-22 16:09 | 只看该作者
戈卫东 发表于 2017-4-21 21:49
打劫!把板子交出来!

我交,我交。。。

使用特权

评论回复
6
jinglixixi|  楼主 | 2017-4-22 16:10 | 只看该作者
smilingangel 发表于 2017-4-22 11:59
MCu与屏幕的通讯方式是串行的哈

用GPIO口模拟的SPI.

使用特权

评论回复
7
liangliang0606| | 2017-4-23 00:57 | 只看该作者
请问一下你这个板子的资料在那下载啊??

使用特权

评论回复
8
jinglixixi|  楼主 | 2017-4-23 18:50 | 只看该作者
liangliang0606 发表于 2017-4-23 00:57
请问一下你这个板子的资料在那下载啊??

官网http://gd32mcu.21ic.com/

使用特权

评论回复
9
vibra2016| | 2017-4-29 13:11 | 只看该作者
这个液晶显示屏是12864的吧,,在一般的工业仪表中还是蛮多见的。

使用特权

评论回复
10
jinglixixi|  楼主 | 2017-5-2 08:42 | 只看该作者
vibra2016 发表于 2017-4-29 13:11
这个液晶显示屏是12864的吧,,在一般的工业仪表中还是蛮多见的。

以前曾用在诺基亚手机上的屏

使用特权

评论回复
11
vibra2016| | 2017-5-8 21:09 | 只看该作者
12864的液晶是很够用的。

使用特权

评论回复
12
smilingangel| | 2017-5-22 22:11 | 只看该作者
12864的屏配合这个MCU的开发板的可以做一个较复杂的项目的。

使用特权

评论回复
13
shenmu2012| | 2017-5-26 20:55 | 只看该作者
这个平还是蛮不错的,,做小型仪表的还可以

使用特权

评论回复
14
zhangbo1985| | 2017-5-29 18:18 | 只看该作者
这个注意数据的处理的

使用特权

评论回复
15
baimiaocun2015| | 2017-5-29 20:10 | 只看该作者
看来这个是采用串行通讯的方式。

使用特权

评论回复
16
jinglixixi|  楼主 | 2017-5-30 11:18 | 只看该作者
baimiaocun2015 发表于 2017-5-29 20:10
看来这个是采用串行通讯的方式。

GPIO模拟SPI接口通讯。

使用特权

评论回复
17
zya888| | 2017-5-31 20:45 | 只看该作者
支持一个,很不错

使用特权

评论回复
18
jinglixixi|  楼主 | 2017-6-1 08:29 | 只看该作者
zya888 发表于 2017-5-31 20:45
支持一个,很不错

感谢支持!!!

使用特权

评论回复
19
finezhang| | 2017-6-8 13:52 | 只看该作者
谢谢分享

使用特权

评论回复
20
风声112| | 2017-9-5 15:35 | 只看该作者
大哥能不能给我一份这个显示器原码啊。拜托,我的邮箱2070821507qq.com

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

455

主题

2756

帖子

38

粉丝