[手把手教学]零基础学会STM32 LCD显示图片

2 篇文章 0 订阅

目录

硬件

软件

步骤

        1.找到该开发板的LCD例程​编辑

        2.打开LCD例程,在lcd.c文件中加入以下代码

        3.在lcd.h文件中加入void LCD_ShowPicture(u16 x,u16 y,u16 column,u16 row,unsigned short *pic);​编辑

        4.使用 Image2LCD 软件取模变成数组​编辑​编辑​编辑

        5.复制数组到main.c 中​编辑

        6.然后写main.c文件

结果 ​编辑


硬件

  • 一块STM32开发板
  • 一个LCD屏幕
  • ST_LINK下载器

软件

  • Image2LCD
  • Keil5

步骤

  1. 找到该开发板的LCD例程
  2. 打开LCD例程,在lcd.c文件中加入以下代码
    void LCD_ShowPicture(u16 x,u16 y,u16 column,u16 row,unsigned short *pic)
    {
        u16 m,h;
        u16 *data=(u16*)pic;
        for(h=0+y;h<row+y;h++) //60
        {
            for(m=0+x;m<column+x;m++) //180
            {
                LCD_Fast_DrawPoint(m,h,*data++);
            }
        }
    }
  3. 在lcd.h文件中加入void LCD_ShowPicture(u16 x,u16 y,u16 column,u16 row,unsigned short *pic);
  4. 使用 Image2LCD 软件取模变成数组


  5. 复制数组到main.c 中
  6. 然后写main.c文件
    
    int main(void)
    { 
        
    	u8 lcd_id[12];				//存放LCD ID字符串
    	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
    	delay_init(168);      //初始化延时函数
    	uart_init(115200);		//初始化串口波特率为115200
    	
        LED_Init();
     	LCD_Init();           //初始化LCD FSMC接口
    	POINT_COLOR=RED;      //画笔颜色:红色
    	sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);//将LCD ID打印到lcd_id数组。
            
        LCD_Clear(WHITE);
        
        LCD_ShowNum(100,380,20230610,8,24);
        //这里的185和239对应的是图片输出分辨率大小
        LCD_ShowPicture(0,0,185,239,(u16*)gImage_12);
        
        while(1)
        {
            LED0=!LED0;
            delay_ms(500);
        }
    

结果
 

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
好的,下面是HC-05蓝牙模块与STM32连接点灯的步骤及手把手教学: 材料准备: - HC-05蓝牙模块 - STM32开发板 - 杜邦线若干 - LED灯一个 - 220欧姆电阻一个 步骤: 1. 将HC-05蓝牙模块的VCC接5V,GND接GND,TX接STM32的RX,RX接STM32的TX。 2. 在STM32上选择一个IO口(例如PA5),将该IO口通过220欧姆电阻连接到LED的阳极上,LED的阴极连接到GND。 3. 下载并打开Keil或者其他STM32编程工具,创建一个新工程。 4. 在工程添加HC-05蓝牙模块驱动程序库文件(一般为.h和.c文件)。 5. 编写代码,初始化串口,并设置波特率为9600,与HC-05蓝牙模块通信。同时,将PA5口作为输出口初始化。 6. 在程序使用while循环,不断读取HC-05蓝牙模块发送来的数据,并通过PA5口控制LED的亮灭。 具体代码实现如下(以STM32F103C8T6为例): ``` #include "stm32f10x.h" #include "hc05.h" int main(void) { uint8_t data; GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); USART_Cmd(USART1, ENABLE); while (1) { if (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == SET) { data = USART_ReceiveData(USART1); if (data == '1') { GPIO_SetBits(GPIOA, GPIO_Pin_5); } else if (data == '0') { GPIO_ResetBits(GPIOA, GPIO_Pin_5); } } } } ``` 注:以上代码的hc05.h文件是自己编写的HC-05蓝牙模块驱动程序库文件,可根据实际情况进行修改。 完成以上步骤后,将程序烧录到STM32开发板上,打开手机蓝牙并连接HC-05蓝牙模块,即可通过发送字符1或0控制LED的亮灭。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值