关于STM8L系列LCD驱动的备忘录以及移位解释

1.这是此屏幕的对应的表:

采用COM0-COM3对应此LCD真值表的COM1-COM4端口;

REG0-REG8对应5-13脚;换算真值表如下:

根据STM5L手册,COM0对应RAM_REGx的0-2;依次上图颜色;

编程需要注意事项:

1.由于是4个位选,所以,    LCD_Init(LCD_Prescaler_64, LCD_Divider_30, LCD_Duty_1_4,
    LCD_Bias_1_3, LCD_VoltageSource_External);  //采用外部电源,其LCD_Duty_1_4必须选择1/4周期,如果是8个数码管,就是_1_8;在这里编程折腾了非常长的时间未注意看这个参数-切记;

2.驱动显示时,对应如下: 最高位ABCDEFGT3对应,A是最高位;看上图A-H;

//以第一个数码管为例DIG1-
//com1
LCD->RAM[LCD_RAMRegister_0]&=(~0x06);
LCD->RAM[LCD_RAMRegister_0] |=(((LCD_MODEL[num1]<<2)&0x04)+((LCD_MODEL[num1])&0x02));   //1A 1B
//com2
LCD->RAM[LCD_RAMRegister_3]&=(~0x60);
LCD->RAM[LCD_RAMRegister_3] |=(((LCD_MODEL[num1]<<1)&0x40)+((LCD_MODEL[num1]>>1)&0x20)); //1F 1G
//com3
LCD->RAM[LCD_RAMRegister_7]&=(~0x06);
LCD->RAM[LCD_RAMRegister_7] |=(((LCD_MODEL[num1]>>2)&0x04)+((LCD_MODEL[num1]>>1)&0x02));  //1E 1C
//com4
LCD->RAM[LCD_RAMRegister_10]&=(~0x60);
LCD->RAM[LCD_RAMRegister_10] |=(((LCD_MODEL[num1]<<3)&0x40)+((LCD_MODEL[num1]>>2)&0x20)); //1D 1-T3

解释:由于1A对应在S0[2]寄存器处,硬件电路接它REG0脚,所以,需要向RAM显示缓存区右移2位,确保与LCD资料的位置一致;

同理:1B在S0[1]寄存器处;而硬件接REG1脚,所以,不需要移动,保持原位即可;其他原理类似;

因没有任何人请教及说明,导致此驱动折腾了近12个小时,其中11个小时折腾在原来借用的程序是8个数码管,而我的是4个引起的!

记录技术点滴,努力成长,技术就是层纸,破了就简易了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值