找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2122|回复: 1
收起左侧

STM8L单片机LCD配置问题

[复制链接]
ID:226750 发表于 2019-4-16 14:50 | 显示全部楼层 |阅读模式
时钟在外面配置了,在写RAM的时候对不上号,看文档说S对应com的SEG,但是无济于事。
TIM截图20190416144928.png
  1.   //SEG GPIO Init
  2.   GPIO_Init(GPIOE, GPIO_Pin_0|GPIO_Pin_1,GPIO_Mode_Out_PP_Low_Fast);//SEG1,2
  3.   GPIO_Init(GPIOE, GPIO_Pin_2|GPIO_Pin_3,GPIO_Mode_Out_PP_Low_Fast);//SEG3,4
  4.   GPIO_Init(GPIOE, GPIO_Pin_4|GPIO_Pin_5,GPIO_Mode_Out_PP_Low_Fast);//SEG5,6
  5.   GPIO_Init(GPIOD, GPIO_Pin_0|GPIO_Pin_2,GPIO_Mode_Out_PP_Low_Fast);//SEG7,8
  6.   GPIO_Init(GPIOD, GPIO_Pin_3,GPIO_Mode_Out_PP_Low_Fast);//SEG9
  7.   GPIO_Init(GPIOB, GPIO_Pin_0|GPIO_Pin_1,GPIO_Mode_Out_PP_Low_Fast);//SEG10,11
  8.   //COM GPIO Init
  9.   GPIO_Init(GPIOF, GPIO_Pin_4|GPIO_Pin_5,GPIO_Mode_Out_PP_Low_Fast);//COM4,5
  10.   GPIO_Init(GPIOF, GPIO_Pin_6|GPIO_Pin_7,GPIO_Mode_Out_PP_Low_Fast);//COM6,7
  11.   
  12. //------打开LCD时钟------
  13.   CLK->PCKENR2 |= (1<<3);
  14. //  CLK_PCKENR2_PCKEN23=1;//打开LCD时钟,读写LCD寄存器用到此时钟
  15. //----设置LCD预分频值----  
  16.   LCD_FRQ_PS0=0;// 2^PS[3:0]
  17.   LCD_FRQ_PS1=0;//分频值为1
  18.   LCD_FRQ_PS2=0;
  19.   LCD_FRQ_PS3=0;
  20. //----设置LCD分频值----  
  21.   LCD_FRQ_DIV0=0;//DIV[3:0]+16
  22.   LCD_FRQ_DIV1=0;//分频值为15+16=31
  23.   LCD_FRQ_DIV2=0;
  24.   LCD_FRQ_DIV3=0;  
  25. //以上分频值的设置,最为了得到适合的LCD的刷新频率,如果增大分频值,会导致
  26. //LCD刷新频率变低,会看到LCD显示出现闪烁
  27. //比如,我们将PS[3:0]设置为0011,会看到液晶闪烁  
  28. //----1/4 duty----  
  29.   LCD_CR1_DUTY0=0;//1/4 duty
  30.   LCD_CR1_DUTY1=1;
  31. /* Duty ratio selection
  32.    00: Static duty
  33.    01: 1/2 duty
  34.    10: 1/3 duty
  35.    11: 1/4 duty      */
  36. //----1/3 bias----     
  37.   LCD_CR1_B2=0;//1/3 bias
  38. /* 0: 1/3 bias
  39.    1: 1/2 bias  */
  40. //----内部电压源----   
  41.   LCD_CR2_VSEL=0;
  42. //----打开引脚的SEG功能----     
  43.   //配置正确
  44.   LCD->PM[0]|= 0xfe;//启用seg0-7
  45.   LCD->PM[1]|= 0x0F;//启用seg8-10
  46. //----To set contrast to mean value----   
  47.   LCD_CR2_CC0=1;//对比度
  48.   LCD_CR2_CC1=1;
  49.   LCD_CR2_CC2=1;
  50. /*  000: VLCD0  2.6V
  51.     001: VLCD1  2.7V
  52.     010: VLCD2  2.8V
  53.     011: VLCD3  2.9V
  54.     100: VLCD4  3.0V
  55.     101: VLCD5  3.1V
  56.     110: VLCD6  3.2V
  57.     111: VLCD7    */
  58. //----Dead time 0----         
  59.   LCD_CR3_DEAD0=0;//no dead time
  60.   LCD_CR3_DEAD1=0;  
  61.   LCD_CR3_DEAD2=0;
  62. //----LCD_PulseOnDuration_1----
  63.   LCD_CR2_PON0=1;
  64.   LCD_CR2_PON1=0;  
  65.   LCD_CR2_PON2=0;         
  66. /*  000: 0 CLKps pulses
  67.     001: 1 CLKps pulses
  68.     010: 2 CLKps pulses
  69.     011: 3 CLKps pulses
  70.     100: 4 CLKps pulses
  71.     101: 5 CLKps pulses
  72.     110: 6 CLKps pulses
  73.     111: 7 CLKps pulses  */
  74. //----Enable LCD peripheral----        
  75.   //LCD_CR3_LCDEN=1;
  76. //  LCD->CR4 &=0x00;
  77.   LCD->CR3 |= (0x01<<6);
复制代码
回复

使用道具 举报

ID:123289 发表于 2019-4-17 12:55 | 显示全部楼层
实做还是仿真?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表