距离上一次发帖已经过去好久,不得不感叹现在的生活压力之大。面对年底无年终奖的局面,只能默默地来论坛,这个虚拟社区实现自我。
今天周末北京面临最低的-16度,得以有一个合理的理由窝在家里做自己喜欢论坛,做自己喜欢的DIY活动——STM32L053原生支持段式LCD屏。
自己首先DIY了一个段式LCD屏的底座,使用了圆孔座方便更换LCD屏,然后自己焊接了插针,方便使用杜邦线与STM32L053开发板连接,上一张效果图:

硬件已经连接完毕,软件开始登场。使用STcubeMx来生成源代码还是非常方便的,仅需要勾选对应的引脚并在LCD配置界面进行相关参数修改即可。版主LCD屏的硬件参数配置如下:
在生成的软件架构里,我们也只需要添加如下几行代码即可,源代码如下:
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration----------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_LCD_Init();
MX_USART2_UART_Init();
/* USER CODE BEGIN 2 */
HAL_LCD_Write(&hlcd, LCD_RAM_REGISTER0, 0x0000, 0xffff);
HAL_LCD_Write(&hlcd, LCD_RAM_REGISTER2, 0x0000, 0xffff);
HAL_LCD_Write(&hlcd, LCD_RAM_REGISTER4, 0x0000, 0xffff);
HAL_LCD_Write(&hlcd, LCD_RAM_REGISTER6, 0x0000, 0xffff);
HAL_LCD_UpdateDisplayRequest(&hlcd);
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
上面的源代码是让所有的LCD点全亮,于是,LCD屏的显示如下,

通过这个小实验,我们学习如何操作段式液晶屏并用于显示。在实际应用中,仅需要重构显示缓冲区内容,并间隔刷新LCD_RAM即可。
最后,版主也在这里给大家一些小提示,STcubeMx的配置仅仅是默认值,多数参数是需要重新输入的,例如LCD屏的对比度电压值,这里不能使用默认的2.6v,而要选择适合自己的,比如版主的3.26v才能驱动LCD屏。
我要赚赏金
