完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大神们,为什么我初始化过后液晶屏不能显示段点啊,是哪里有问题啊!时钟选择LSI有问题吗?求大神帮忙解决下,项目急,谢谢了!
如果方便可以加我qq1358843903,红包都不是问题。 /************************************************************************* *开发环境:IAR for stm8 v6.5.3 *硬件平台:STM8L-DISCOVERY *功能说明: *作 者: *************************************************************************/ #include /***************************************************************************** * 名 称:void LCD_Config(void) * 功 能: * 入口参数:无 * 出口参数:无 * 说 明: ******************************************************************************/ void lcd_init(void) { /*******打开LCD/RTC时钟*************/ CLK_PCKENR2_PCKEN22=1; //打开RTC时钟,LCD刷新频率与此时钟有关 外围时钟使能 CLK_PCKENR2_PCKEN23=1; //打开LCD时钟,读写LCD寄存器用到此时钟 外围时钟使能 /****库 CLK->CRTCR = (uint8_t)((uint8_t)CLK_RTCCLKSource | (uint8_t)CLK_RTCCLKDiv);******/ CLK_CRTCR_RTCSEL0=0; // LSI (这个时钟源必须在16.384 kHz到500 kHz) CLK_CRTCR_RTCSEL1=1; CLK_CRTCR_RTCSEL2=0; CLK_CRTCR_RTCSEL3=0; CLK_CRTCR_RTCDIV0=0; CLK_CRTCR_RTCDIV1=0; CLK_CRTCR_RTCDIV2=0; LCD_FRQ_PS0=0; // 2^PS[3:0] LCD_FRQ_PS1=0; LCD_FRQ_PS2=1; LCD_FRQ_PS3=0; LCD_FRQ_DIV0=1; //DIV[3:0]+16 LCD_FRQ_DIV1=1; //分频值为15+16=31 LCD_FRQ_DIV2=1; LCD_FRQ_DIV3=1; LCD_CR1_DUTY0=1; //选择比例1/4 duty LCD_CR1_DUTY1=1; LCD_CR1_B2=0; //1/3 偏率 /**********打开引脚的SEG功能********/ LCD_PM0=0xFF; LCD_PM1=0x3F; /**********打开引脚的SEG功能4个COM口,13个SEG口********/ LCD_CR2_CC0=0;//对比度 LCD_CR2_CC1=0; LCD_CR2_CC2=1; /* 000: VLCD0??2.6V 001: VLCD1 2.7V 010: VLCD2 2.8V 011: VLCD3 2.9V 100: VLCD4 3.0V 101: VLCD5 3.1V 110: VLCD6 3.2V 111: VLCD7 */ LCD_CR3_DEAD0=0;//no dead time LCD_CR3_DEAD1=0; LCD_CR3_DEAD2=0; /******脉冲持续时间****************/ LCD_CR2_PON0=1; //1个时钟PS pulses LCD_CR2_PON1=0; LCD_CR2_PON2=0; LCD_CR2_VSEL=0; //确定LCD电压源(neibu部电压) LCD_CR3_LCDEN=1; //使能LCD } /*点亮LCD所有区域*/ void ShowLcdAll(void) { LCD_RAM0 = 0xff; LCD_RAM1 = 0xff; LCD_RAM2 = 0xff; LCD_RAM3 = 0xff; LCD_RAM4 = 0xff; LCD_RAM5 = 0xff; LCD_RAM7 = 0xff; LCD_RAM8 = 0xff; LCD_RAM10 = 0xff; LCD_RAM11 = 0xff; LCD_RAM12 = 0xff; } [/td] 以下内容为评论 [td]STM8有LCD驱动相关的库函数的,直接用库来做比较省事点,看看我的初始化函数 //使用RTC的32768HZ时钟源 void LCD_Setup (void) { //函数配置OK LCD_DeInit(); //使用RTC的32768HZ时钟源,32768/4/16=512 512/8=64HZ刷新率,阳光照射时还是能看出闪烁 //LCD_Init(LCD_Prescaler_4, LCD_Divider_16, LCD_Duty_1_8, LCD_Bias_1_4, LCD_VoltageSource_Internal); //使用RTC的32768HZ时钟源,32768/2/16=1024 1024/8=128HZ刷新率 LCD_Init(LCD_Prescaler_2, LCD_Divider_16, LCD_Duty_1_8, LCD_Bias_1_4, LCD_VoltageSource_Internal); LCD_PM0 = 0xFF; //引脚配置为LCD用SEG0-SEG10 LCD_PM1 = 0x07; LCD_HighDriveCmd(DISABLE); LCD_PulseOnDurationConfig(LCD_PulseOnDuration_7); //延时时间 LCD_DeadTimeConfig(LCD_DeadTime_0); //死区时间 LCD_BlinkConfig(LCD_BlinkMode_Off, LCD_BlinkFrequency_Div8);//闪烁模式 LCD_ContrastConfig(LCD_Contrast_3V0); //内部升压器调节的电压 LCD_Cmd(ENABLE); //LCD_Cmd(DISABLE); //LCD禁能 } |
|
相关推荐
1个回答
|
|
检查硬件,电路,看看是不是时钟线的干扰问题
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1683 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1582 浏览 1 评论
1013 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
703 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1627 浏览 2 评论
1892浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
675浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
538浏览 3评论
558浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
526浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 02:42 , Processed in 1.047013 second(s), Total 80, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号