当前位置:网站首页>Cubemx 移植正点原子LCD显示例程

Cubemx 移植正点原子LCD显示例程

2022-07-06 03:20:00 2020级机器人实验班

 不讲原理,只移植。

        打开cubemx,选择芯片的过程不说。

选择时钟:

 下载方式:

 串口1,因为板子上有ch340,可以直接通过数据线发送到电脑。没有ch340的板子可以选择使用TTL转串口。

 点击FSMC 再点击第一个。

 按照如下方式进行选择,需要看开发板原理图。

 将extended mode 使能

 打开正点原子官方例程:

如果是在跳转到定义的时候报了这个错误。

点开魔术棒,将output中的Browse Information 勾选上再进行编译。

 

 找到  LCD_Init

 对照结构体里的各个参数,得出以下设置

 将背光引脚选择成输出模式。

 将时钟修改成72M

 在正点原子例程中找到这三个文件,分别复制到以下Inc和Src中。

编译一下我们会看到很多的错误 

 

 很多错误,我们一个个来。

 

 将include "delay.h"删除,再在main.h中添加如下

typedef uint32_t  u32;
typedef uint16_t u16;
typedef uint8_t  u8;
typedef __IO uint32_t  vu32;
typedef __IO uint16_t vu16;
typedef __IO uint8_t  vu8;

 再将lcd.h中的sys改成main,将main的头文件添加进来

  

 然后错误明显减少

 

 存在微秒级别的延时,但是HAL库没有这个函数,所以我们统一换成 延时一毫秒,毫秒级的延时泽替换成HAL库的毫秒延时就行。

HAL_Delay(1);

 

 修改完成后

 因为LCD_Init函数要使用printf,所以需要添加头文件 

#include "stdio.h"

 

 将LCD_LED =1 修改成以下句子

HAL_GPIO_WritePin(LCD_BL_GPIO_Port,LCD_BL_Pin,GPIO_PIN_SET);

        将 LCD_Init 函数中 HAL_Delay(50) 之前的代码全部删除。

 将 HAL_SRAM_MspInit 函数删除

 在主函数添加以下头文件。

#include "lcd.h"
#include "stdio.h"

 

 再在usart.c的最下方添加串口重定向就完成了。

#include<stdio.h>

#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
	HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
	return ch;
}

将正点原子main里的例程复制 就可以看到实验效果了

 

原网站

版权声明
本文为[2020级机器人实验班]所创,转载请带上原文链接,感谢
https://blog.csdn.net/huuuerli/article/details/125576184