[APM32E0] 极海APM32E030 Micro-EVB开发板测评+SPI驱动1.8寸LCD显示屏

[复制链接]
wuyu40 发表于 2025-8-18 19:44 | 显示全部楼层 |阅读模式
本帖最后由 wuyu40 于 2025-8-18 19:44 编辑

极海APM32E030R芯片是32 Arm®Cortex®-M0+内核,最高工作频率:72MHzFlash 存储器:64KBSRAM 存储器:8KB
开发方式如下:
1)连接 H2/H3 H4/H5 可使用板载 Geehy LINK 进行串口调试
2)断开 Geehy LINK 连接后,第三方调试工具可通过 JP1 连接仿真器进行 MCU 烧录调试
3)Type-C(数据通信)直接连接 PC 端进行 MCU 仿真调试
4)使用keil v 5.36编译环境
到官网找到如下文件:
图片5.png
使用的操作系统为win10(GEEHY-LINK(WinUSB)设备不支持在 Windows7 上免驱使用)假定已经安装keil (版本 V5.29 以上),安装Geehy.APM32E030_DFP.1.0.3也就是mcu支持包,阅读用户手册,按照指示连接硬件;该固件基于 CMSIS-DAP V1,会使用 USB 枚举成一个 HID 和 MSC 设备。
使用 USB 线成功连接电脑后,设备管理器上会出现:CMSIS DAP winUSB
图片4.png
keil 软件上配置选择使用 SW 模式或者 JTAG 模式。点击“Options for Target” ,在打开的界面中选择“Debug”,然后再选择“CMSIS-DAP Debugger”,点击“Settings”按钮进入设置界面,选择 SWD 或者 JTAG 模式以及频率如图
图片3.png
1.8oled显示屏原理图:
图片2.png
APM32e030r8按照以下方式进行接线:
GND 接地   VCC->3.3V      SCL->PB8  SDA->PB9   RES->PB5
      DC->PB6     CS->PB3         BLK->PB4
将以下stm32工程中的头文件与C文件复制到APM32工程文件夹下:
图片1.png
并在项目管理器中将这些文件添加到工程中,并逐个修改,比如:
void LCD_GPIO_Init(void)
{   //APM32  code引脚初始化
   GPIO_Config_T gpioConfig;
    RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_GPIOB);
    gpioConfig.pin =GPIO_PIN_ALL;
    gpioConfig.mode = GPIO_MODE_OUT;
    gpioConfig.outtype = GPIO_OUT_TYPE_PP;
    gpioConfig.speed = GPIO_SPEED_50MHz;
    gpioConfig.pupd = GPIO_PUPD_NO;
    GPIO_Config(GPIOB, &gpioConfig);
//APM32  code
}
lcd驱动头文件中进行如下修改:
#define LCD_SCL                GPIO_PIN_8        //PB8--->>TFT --SCL/SCK
#define LCD_SDA                GPIO_PIN_9        //PB9 MOSI--->>TFT --SDA/DIN
#define LCD_CS                GPIO_PIN_3            //MCU_PB3--->>TFT --CS/CE
#define LCD_LED                GPIO_Pin_4         //MCU_PB9--->>TFT --BL
#define LCD_RS                 GPIO_PIN_6        //PB6--->>TFT --RS/DC
#define LCD_RST                GPIO_PIN_5        //PB5--->>TFT --RST
#define        LCD_SCL_SET          GPIO_SetBit(GPIOB, GPIO_PIN_8)
#define        LCD_SDA_SET          GPIO_SetBit(GPIOB, GPIO_PIN_9)
#define        LCD_CS_SET              GPIO_SetBit(GPIOB, GPIO_PIN_3)
#define        LCD_LED_SET          GPIO_SetBit(GPIOB, GPIO_PIN_4)  
#define        LCD_RS_SET            GPIO_SetBit(GPIOB, GPIO_PIN_6)
#define        LCD_RST_SET          GPIO_SetBit(GPIOB, GPIO_PIN_5)
#define        LCD_SCL_CLR          GPIO_ClearBit(GPIOB, GPIO_PIN_8)  
#define        LCD_SDA_CLR          GPIO_ClearBit(GPIOB, GPIO_PIN_9)  
#define        LCD_CS_CLR          GPIO_ClearBit(GPIOB, GPIO_PIN_3)  
#define        LCD_LED_CLR          GPIO_ClearBit(GPIOB, GPIO_PIN_4)  
#define        LCD_RST_CLR          GPIO_ClearBit(GPIOB, GPIO_PIN_5)  
#define        LCD_RS_CLR          GPIO_ClearBit(GPIOB, GPIO_PIN_6)
修改delay.c文件,使用滴答时钟进行延时控制
void delay_ms(u16 nms)
{                                    
        for(;nms==0;nms--)  
        {
  if (SysTick_Config(SystemCoreClock / 1000))
    {
        while (1);
    }
        }
}                                                                                  
void delay_us(u32 nus)
{               
        for(;nus==0;nus--)  
        {
  if (SysTick_Config(SystemCoreClock /1000000))
    {
        while (1);
    }
        }
}  
其他修改就根据系统提示逐一修改错误位置,头文件包含和u8定义等等,完成调试;
视频链接如下:




Gfan 发表于 2025-8-19 17:39 | 显示全部楼层
小海来人工顶帖~大佬用心啦!还附上效果视频
银河漫步 发表于 2025-8-22 15:36 | 显示全部楼层
看上去怎么像是I2C驱动的代码啊
 楼主| wuyu40 发表于 2025-8-22 17:51 | 显示全部楼层
附上源代码

SysTick.rar

1.66 MB, 下载次数: 0

LCD显示工程

您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

64

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部