STM8L152K4的LCD控制一定要RTC时钟才能工作吗?
请问STM8L152K4的LCD控制一定要RTC时钟才能工作吗?板子没有RTC的外部晶振,我用STM8L1526_EVAL的例程,修改LCD时钟源为LSI时,发现LCD初始化函数的相关寄存器值在DEBUG时发现都不会赋值更新,一直是默认值。用库里自带的LCD模板,修改为LSI也是一样现象。结贴:经过重新买了一个STM8l152的开发板进行测试,发现程序是没问题的,同时时为了验证芯片,我用STM8L152k4的9脚当普通GPIO PD0使用,发现这个脚确定是GPIO口,所以可以肯定,此芯片是STM8L151K4,不是152K4,是国内的奸商打磨的型号。具体关于9脚 的定义,请查询数据手册第33页,8L151的9脚定义和第35页的8L152的第9脚定义,以及注释2关于8L152第9脚为VLCD的说明,注释8关于9脚STM8L151为GPIO PD0的说明。
另外批露我买芯片的商家,天猫店,ID:风*水起旗舰店, 搜STM8L152K4U6,写的9元一片可直拍。
附带说一句,国人真的太可怕了。无所不能。 既然有人说是配置不对,那我附上代码,实测LED(PA0)取反正常工作。
void main(void)
{
unsigned inttemp;
temp=0;
GPIO_Init(GPIOA, GPIO_Pin_0, GPIO_Mode_Out_OD_Low_Slow);
GPIO_ExternalPullUpConfig(GPIOF, GPIO_Pin_0, ENABLE);
CLK_HSICmd(ENABLE);
CLK_LSICmd(ENABLE);
CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSI);
CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE); //使能实时时钟
CLK_PeripheralClockConfig(CLK_Peripheral_LCD, ENABLE); //使能LCD时钟
CLK_RTCClockConfig(CLK_RTCCLKSource_LSI,CLK_RTCCLKDiv_8); //选择RTC时钟源
LCD_Init(LCD_Prescaler_64,LCD_Divider_16,LCD_Duty_1_4,LCD_Bias_1_3,LCD_VoltageSource_Internal ); //LCD初始化
delay(10);
LCD_PortMaskConfig(LCD_PortMaskRegister_1,0XFE);// seg 9,10,11,12,13,14,15为seg口
LCD_PortMaskConfig(LCD_PortMaskRegister_2,0X3F);// seg 16,17,18,19,20,21,为seg口
LCD_ContrastConfig(LCD_Contrast_3V0); //配置LCD的对比度
LCD_DeadTimeConfig(LCD_DeadTime_0); // 配置LCD液晶的死区时间
LCD_PulseOnDurationConfig(LCD_PulseOnDuration_1); // 配置LCD脉冲持续时间。
LCD_Cmd(ENABLE); //使能LCD控制器
while (1)
{
display_LCD(temp);
temp++;
if(temp==100)
temp=0;
GPIO_ToggleBits(GPIOA,GPIO_Pin_0);
delay(500);
}
}完整代码在这附件中,请手上有STM8L152开发板的帮忙验证LCD_Init函数,DEBUG看寄存器的值是否变化。
应该不用。估计是你配置不对吧 可以不用。
页:
[1]