【STM32F0实验】+Nokia5110液晶显示

[复制链接]
 楼主| 568581185 发表于 2012-8-16 09:21 | 显示全部楼层 |阅读模式
本帖最后由 568581185 于 2012-9-9 09:27 编辑

20120831_001.jpg
昨晚研究了一晚上,在STM32F1xx的固件库文档的帮助下,成功实现了Nokia5110液晶的简单显示主函数代码
  1. int main(void)
  2. {
  3.         Clock_Init();
  4.   GPIO_LCD_Init();
  5.         LCD_Init();
  6.   while(1)
  7.   {  
  8.     LCD_Write_Num(0 ,0 ,1234,5);
  9.   }
  10. void Clock_Init(void)
  11. {
  12.         ErrorStatus HSEStartUpStatus;
  13.         /* Enable HSE */
  14.         RCC_HSEConfig(RCC_HSE_ON);
  15.         /* Wait till HSE is ready and if Time out is reached exit */
  16.         HSEStartUpStatus = RCC_WaitForHSEStartUp();
  17.         if(HSEStartUpStatus == SUCCESS)
  18.         {
  19.         /* Set PLL clock output to 24MHz using HSE (8MHz) as entry clock */
  20.         RCC_PLLConfig(RCC_CFGR_PLLSRC_PREDIV1, RCC_PLLMul_3);
  21.         /* Enable the PLL */
  22.         RCC_PLLCmd(ENABLE);
  23.         /* Select the PLL as system clock source */
  24.         RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
  25.         /* Configure HCLK such as HCLK = SYSCLK */
  26.         RCC_HCLKConfig(RCC_SYSCLK_Div1);        
  27.         /* Configure PCLK1 such as PCLK1 = HCLK/2 */
  28.         RCC_PCLKConfig(RCC_HCLK_Div2);

  29.         /* Enable GPIOA clocks */
  30.         RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
  31.         }
  32.         else
  33.         {
  34.         /* Add here some code to deal with this error */
  35.         }        
  36.                         
  37. }
  38. void GPIO_LCD_Init(void)
  39. {
  40.         /* Configure all the GPIOA in Input Floating mode */
  41.         GPIO_InitTypeDef GPIO_InitStructure;
  42.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
  43.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_3;
  44.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  45.         GPIO_InitStructure.GPIO_OType        = GPIO_OType_PP;
  46.         GPIO_Init(GPIOA, &GPIO_InitStructure);
  47. }
20120816_001.jpg 5110的C文件、头文件和字库文件
Nokia5110.zip (4.77 KB, 下载次数: 99)
5110液晶引脚宏定义
  1. #define uint uint16_t
  2. #define uchar uint8_t

  3. #define SCLK_SET          GPIO_WriteBit(GPIOA, GPIO_Pin_1, Bit_SET)
  4. #define SCLK_CLR          GPIO_WriteBit(GPIOA, GPIO_Pin_1,Bit_RESET);

  5. #define SDIN_SET          GPIO_WriteBit(GPIOA, GPIO_Pin_2, Bit_SET)
  6. #define SDIN_CLR          GPIO_WriteBit(GPIOA, GPIO_Pin_2,Bit_RESET);

  7. #define LCD_DC_SET        GPIO_WriteBit(GPIOA, GPIO_Pin_3, Bit_SET)
  8. #define LCD_DC_CLR        GPIO_WriteBit(GPIOA, GPIO_Pin_3,Bit_RESET);

  9. #define LCD_CE_SET        GPIO_WriteBit(GPIOA, GPIO_Pin_4, Bit_SET)
  10. #define LCD_CE_CLR        GPIO_WriteBit(GPIOA, GPIO_Pin_4,Bit_RESET);

  11. #define LCD_RST_SET        GPIO_WriteBit(GPIOA, GPIO_Pin_5, Bit_SET)
  12. #define LCD_RST_CLR        GPIO_WriteBit(GPIOA, GPIO_Pin_5,Bit_RESET);
 楼主| 568581185 发表于 2012-8-16 09:24 | 显示全部楼层
痛苦的是下载太难下进去了,我下载了这么多次,只有那一次成功了
我使用的是外部8M晶振,从上面的时钟初始化也能看出来
znsword 发表于 2012-8-16 15:38 | 显示全部楼层
:funk:!LZ真快,我也是昨天搞定了5110,还没有来得及发帖,被你占先了。
 楼主| 568581185 发表于 2012-9-9 09:33 | 显示全部楼层
更新一下显示图片
图片显示取模必须是:数据水平,字节垂直方式
取模方式不对,图形显示是乱码
LCD_draw_bmp_pixel(0,0,gImage_j,64 ,40);  //图像取模时,数据水平,字节垂直

ST图形**的数组:
uchar gImage_j[320] = {
0x00,0x00,0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0x7E,0x3E,0x1E,0x1E,
0x1E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x20,0x60,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
0xE0,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0xE0,0xE0,0xE0,
0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xF8,0xF0,0xE0,0xC0,
0x80,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0xFF,0xFF,0xFF,0xFF,0x3F,
0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x80,0xF0,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0x0F,0x0F,0x0E,0x0C,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0x07,0x01,0x00,
0x00,0x00,0x00,0x00,0xC0,0xF0,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x07,0x04,0x04,0x04,0x04,0x04,
0x04,0x04,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
图片效果在楼主位
梦中花雨 发表于 2012-9-10 12:45 | 显示全部楼层
我还不知道怎么搞
 楼主| 568581185 发表于 2012-9-10 12:53 | 显示全部楼层
5# 梦中花雨 这个可以参考下论坛上的资料吧,我看有很多牛人都发了资料上来
多看看就应该会了吧
cqy1991cs1205 发表于 2014-1-23 13:04 | 显示全部楼层
程序烧不进去啊~~~求教
jzxlit 发表于 2015-4-26 15:27 | 显示全部楼层
znsword 发表于 2012-8-16 15:38
!LZ真快,我也是昨天搞定了5110,还没有来得及发帖,被你占先了。

新手 请教一下5110LCD,在STM32F030F4P6上显示,能给个代码么?多谢。
mintspring 发表于 2015-4-26 17:25 | 显示全部楼层
这个,看着不错了,就是有人说程序烧的难,真不明白为何这样
chenDianDian 发表于 2015-4-26 20:00 | 显示全部楼层
mintspring 发表于 2015-4-26 17:25
这个,看着不错了,就是有人说程序烧的难,真不明白为何这样

时序问题,我也写过5110的程序,经常使能端上去了,spi还没发送完,需要延时
mintspring 发表于 2015-4-26 21:35 | 显示全部楼层
chenDianDian 发表于 2015-4-26 20:00
时序问题,我也写过5110的程序,经常使能端上去了,spi还没发送完,需要延时 ...

应该添加个while循环,直到发送完了跳过
jzxlit 发表于 2015-6-24 19:25 | 显示全部楼层
调试成功,谢谢楼主,不过代码里缺了一个 时钟         RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
598330983 发表于 2015-6-24 19:34 | 显示全部楼层
这代码怎么写出来的,楼主是个大神啊
309030106 发表于 2015-6-24 21:38 | 显示全部楼层
楼主大神啊,赞一个
乱世流年 发表于 2015-8-24 12:00 | 显示全部楼层
不错不错
冰河w 发表于 2015-8-24 16:15 | 显示全部楼层
这代码是写出来的,还是移植的,大神啊
Ketose 发表于 2016-2-26 16:49 | 显示全部楼层
软件模拟SPI,看来都是从51上移植过来的。
huangxiangc 发表于 2016-4-20 19:25 来自手机 | 显示全部楼层
不知道
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:个人淘宝小店:http://shop70915068.taobao.com 邮件:785606460@qq.com

20

主题

955

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部