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

 不讲原理,只移植。

        打开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里的例程复制 就可以看到实验效果了

 

  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值