本帖最后由 liaoxianghan 于 2024-5-29 01:44 编辑
AT-START-F405开发板点亮LED的过程可以概括如下: 1. 开发板了解 · AT-START-F405开发板使用雅特力(Arterytek)的AT32F405RCT7-7微控制器,该控制器基于ARM Cortex-M4核,具有96+6KB RAM和256KB Flash。 · 开发板资源丰富,包含多个LED灯等组件。 2. 开发环境搭建 · 开发板的相关资料可从官网下载,如数据手册、开发指南等。 · 开发环境支持Keil和雅特力AT32 IDE。 · 使用辅助代码生成工具AT32 Work Bench可以方便快捷地搭建代码框架。 · 安装必要的Keil pack包和调试烧录器驱动。 3. 代码准备与点灯程序 · 有两种方式准备代码:一是基于SDK中的demo工程作为基础;二是由AT32 Work Bench生成代码工程。 · 使用AT32 Work Bench时,需要进行功能选择配置、添加压缩包library及芯片型号,并生成Keil代码。 · 点灯程序可以在SDK目录中的gpio/led_toggle示例工程中找到。 · 选择正确的芯片型号和烧录器,编译并烧录代码。 4. 点亮LED步骤(以使用AT32 Work Bench和Keil IDE为例) 1. 确定LED使用的IO:通过开发板手册,确定LED连接的GPIO引脚。 2. 配置GPIO:在AT32 Work Bench中,选择对应的GPIO引脚,并设置为GPIO_Output模式。 3. 生成代码:在AT32 Work Bench中完成配置后,生成Keil工程代码。 4. 编写点灯代码:在生成的Keil工程中,找到main.c文件,并添加点亮LED的代码。例如,使用gpio_bits_reset()函数来点亮LED。 5. 编译与烧录:在Keil IDE中编译代码,并使用调试烧录器将代码烧录到开发板中。 6. 验证:上电后,观察开发板上的LED是否按照预期点亮。
代码: 流水灯: at32_led_toggle(LED2); delay_ms(200); at32_led_toggle(LED3); delay_ms(200); at32_led_toggle(LED4); delay_ms(200); 点亮LED: at32_led_toggle(LED4); delay_ms(200); 翻转函数: void at32_led_toggle(led_type led) { if(led > (LED_NUM - 1)) return; if(led_gpio_pin[led]) led_gpio_port[led]->togr = led_gpio_pin[led]; }
初始化: void at32_led_init(led_type led) { gpio_init_type gpio_init_struct;
/* enable the led clock */ crm_periph_clock_enable(led_gpio_crm_clk[led], TRUE);
/* set default parameter */ gpio_default_para_init(&gpio_init_struct);
/* configure the led gpio */ 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 = led_gpio_pin[led]; gpio_init_struct.gpio_pull = GPIO_PULL_NONE; gpio_init(led_gpio_port[led], &gpio_init_struct); } LED原理图: MCU连接位置:
|