本帖最后由 suncat0504 于 2024-4-28 10:12 编辑
最近工作很忙,以至于拿到雅特力的开发板快一周了,才有机会开始着手研究。雅特力的开发板没的说,简洁明快,开发工具也给力。老规矩,先搞通GPIO口的程序。为了方便设置GPIO口,从官网下载了例程,从GPIO有关的例程学起。这里我准备直接上GPIO口模拟SPI方式驱动TFT显示屏,准备用GPIO模拟方式驱动OLED,用到J2中PB10、PB1、PC5、PA7、PA5这个GPIO口。
在进入开发之前,需要先安装Keil下开发用的设备包ArteryTek.AT32F402_405_DFP.2.0.6.pack,否则工程没法正常打开和编译。
然后我就准备使用led_toggle工程,并在这个该工程基础上追加TFT显示屏的处理代码。代码也不需要写太多,基本上就是把其他工程中用到的相关程序拿过来,在针对AT32F405的支持库,修改接口有关引脚的宏定义就行。原来还担心AT32F405的主频太高,会影响显示,必要的情况下都准备加延迟处理了,结果一点问题都没有。正常TFT显示处理中需要延迟的地方,直接就可以使用支持库中的延时函数,从微秒到秒级都提供好了,简直太贴心了。
对接口的初始化部分的代码,完全仿照板载用户LED的初始化部分的代码就可以。
void LCD_GPIO_Init(void) {
gpio_init_type gpio_init_struct;
/* enable the button clock */
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
/* set default parameter */
gpio_default_para_init(&gpio_init_struct);
/* configure button pin as input with pull-up/pull-down */
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
gpio_init_struct.gpio_pins = LCD_CS_PIN | LCD_RS_PIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init(GPIOA, &gpio_init_struct);
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
gpio_init_struct.gpio_pins = LCD_RST_PIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init(GPIOC, &gpio_init_struct);
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
gpio_init_struct.gpio_pins = LCD_SDA_PIN | LCD_SCL_PIN;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init(GPIOB, &gpio_init_struct);
}
和程序有关的下载方面的设置,啥都不用改,直接使用led_toggle的工程配置就好。
编译完程序,就可以下载,一路行云流水,没有任何问题,很容易就行实现了TFT的显示。
AT32F405系列高效能ARM®Cortex®-M4微控制器,高达216MHz的CPU运算速度与内建的单精度浮点运算单元(FPU)、数字信号处理器(DSP)。这些参数,实在是太强悍了,比我当初买的486电脑的CPU性能都高。看看后面能不能针对这些性能搞点啥花样。
说句题外话,写这个帖子的时候,发现二姨家的图片上传功能终于改善了,以前的那个太不方便了。赞!
|