本帖最后由 wuyu40 于 2025-8-18 19:44 编辑
极海APM32E030R芯片是32 位 Arm®Cortex®-M0+内核,最高工作频率:72MHz,Flash 存储器:64KB,SRAM 存储器:8KB
开发方式如下:
1)连接 H2/H3 或 H4/H5 可使用板载 Geehy LINK 进行串口调试
2)断开 Geehy LINK 连接后,第三方调试工具可通过 JP1 连接仿真器进行 MCU 烧录调试
3)Type-C(数据通信)直接连接 PC 端进行 MCU 仿真调试
4)使用keil v 5.36编译环境
到官网找到如下文件:
使用的操作系统为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
在 keil 软件上配置选择使用 SW 模式或者 JTAG 模式。点击“Options for Target” ,在打开的界面中选择“Debug”,然后再选择“CMSIS-DAP Debugger”,点击“Settings”按钮进入设置界面,选择 SWD 或者 JTAG 模式以及频率,如图 :
1.8寸oled显示屏原理图:
将APM32e030r8按照以下方式进行接线:
GND 接地 VCC->3.3V SCL->PB8 SDA->PB9 RES->PB5
DC->PB6 CS->PB3 BLK->PB4
将以下stm32工程中的头文件与C文件复制到APM32工程文件夹下:
并在项目管理器中将这些文件添加到工程中,并逐个修改,比如:
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定义等等,完成调试;
视频链接如下:
|