蓝桥杯之嵌入式学习之旅(LCD)

目录

一.LCD的原理图​编辑

二.STM32CubeMX的配置 

三.代码介绍

四.与LED结合的例子

一.LCD的原理图

二.STM32CubeMX的配置 

         即把对应的引脚设为输出状态即可,为了方便以后的调试我额外初始化了LED灯切换状态的引PD2,LED灯的教程具体见上一节。 

三.代码介绍

  基本的LCD代码

LCD_Init();//LCD的初始化
LCD_Clear(Blue);//刷新屏幕为蓝色
LCD_SetTextColor(White);//设置字体颜色为白色
LCD_SetBackColor(Blue);//设置背景颜色为蓝色
LCD_DisplayChar(Line, Column,Ascii);//在第Line行,column列写字符Ascii
LCD_DisplayStringLine(u8 Line, u8 *ptr);//在第Line行显示字符串ptr

字符高亮显示的代码

void LCDlight(uint8_t*leg1,uint16_t pos,uint8_t Line,uint16_t Color)
{
	 int j=0;
	 while(leg1[j]!= '\0')
	 {	
		 if(j!=pos)
		{
			LCD_DisplayChar(Line,256-16*j,leg1[j]);
		}
		j++;
	}
		LCD_SetBackColor(Color);
		LCD_DisplayChar(Line,256-16*pos,leg1[pos]);
		LCD_SetBackColor(Blue);
}

1.pos是高亮的字符位置,其实质是先将背景设为黄色,然后再设置对应位置的字符背景为黄色,再将背景切换为蓝色。因为设置背景颜色的函数只作用于函数之后的文字,所以能够达成这样的效果。

2.因为其LCD屏幕的分辨率为240*320,而一个字的宽度为16,所以256是首行缩进四个字符

四.与LED结合的例子

初始化

uint8_t leg[20];
uint8_t i=1;
LCD_Init();	
LCD_Clear(Blue);

主函数

	HAL_Delay(500);
	LCD_SetTextColor(White);
	LCD_SetBackColor(Blue);
	sprintf((char*)leg,"The LED is%d",i);
	LCDlight(leg,11,Line2,Yellow);
	LEDDisp(i);
	i++;
	if(i>8)
	i = 1;

 LED的函数可以见前一个我的LED那篇文章

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蓝桥杯嵌入式开发板支持PWM输出,可以通过配置寄存器来实现。下面是一个简单的PWM输出的例子: ```c #include "stm32f10x.h" void PWM_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); TIM_TimeBaseStructure.TIM_Period = 999; TIM_TimeBaseStructure.TIM_Prescaler = 71; TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = 500; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC1Init(TIM3, &TIM_OCInitStructure); TIM_OC2Init(TIM3, &TIM_OCInitStructure); TIM_Cmd(TIM3, ENABLE); } int main(void) { PWM_Init(); while (1) { } } ``` 上述代码中,我们使用了TIM3定时器来实现PWM输出。首先,我们需要初始化GPIO引脚,将其配置为复用推挽输出模式。然后,我们需要初始化TIM3定时器,设置其时钟分频、计数模式、计数周期等参数。最后,我们需要初始化TIM3的输出比较通道,设置其PWM模式、输出状态、占空比等参数。在初始化完成后,我们使能TIM3定时器,即可开始输出PWM波形。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值