1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
因为项目的需求,需要驱动段式LCD,我也没有用过驱动芯片和单片机直接驱动,我花了两三天的时间看了各种资料最后得到的一点点心得,希望对你们有帮助。有什么不对的地方,希望你们能提出宝贵的意见
使用芯片为STM32L4系列芯片,段式LCD为1/4DUTY 1/3BAIS 4*20 1.对于STM32CubeMX的时钟和系统配置就不说了 2.LCD配置 我这边只是测试,使显示2个数字,具体根据你需要显示的SEG勾选 使用了内部电压,我一些资料时说选择外部电压才不会有错误,这个我这边还不是很理解,暂时不会有这个错误 3.然后就可以创建工程了,在此之前最后把还串口配置了方便调试 4.打开工程后你会发现有一些函数可以使用 具体功能你们自己看里面的功能介绍。我强调的是,主要用的两个函数是HAL_LCD_Write()和HAL_LCD_UpdateDisplayRequest() 在使用HAL_LCD_Write()后,必须要更新HAL_LCD_UpdateDisplayRequest(),不然的话就显示不出来 5.根据你的段式LCD的屏幕编码写出,以下数组 6.具体如何算,需要你自己琢磨,只有自己想通了,才是自己的(如果实在想不通,可以在下方评论) 7.写完了之后还需要写一个函数具体功能为转换字符 /******************************************************************************* * Function Name : ConvertNum * Description : 查找输入参数对应的字符编码 * Inputs : InputNum--显示字符 * Outputs : None * Return : None * Notes : None *******************************************************************************/ void ConvertNum(uint8_t InputNum) { uint16_t Num, tmp = 0; uint8_t i; if((InputNum>='0')&&(InputNum<='9')) { Num=NumberMap[InputNum-'0']; } else { Num=0; } for(i = 0;i < 4; i++) { tmp = Num & mask; LCD_DisBuffer = (uint8_t)(tmp >> (uint8_t)shift); } 9.具体显示 |
|
|
|
只有小组成员才能发言,加入小组>>
3311 浏览 9 评论
2994 浏览 16 评论
3493 浏览 1 评论
9058 浏览 16 评论
4087 浏览 18 评论
1178浏览 3评论
605浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
599浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2335浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1896浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 02:05 , Processed in 0.984108 second(s), Total 50, Slave 41 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号