武义县住房和城乡建设局网站,wordpress+去掉阅读,网页制作什么软件好,一天挣5000块钱捕鱼目录 AT32模板工程建立及点灯操作 建立AT32模板工程 AT32点灯操作 LED原理图GPIO寄存器LED源码分析 建立AT32模板工程
从0到编译运行详细搭建保姆教程#xff1a; 【雅特力AT32】Keil 环境#xff1a;搭建标准库模板工程、使用 AT-Link、Debug 里选择 CMSIS-DAP调试器 下面做…目录 AT32模板工程建立及点灯操作 建立AT32模板工程 AT32点灯操作 LED原理图GPIO寄存器LED源码分析 建立AT32模板工程
从0到编译运行详细搭建保姆教程 【雅特力AT32】Keil 环境搭建标准库模板工程、使用 AT-Link、Debug 里选择 CMSIS-DAP调试器 下面做一个简单的介绍简单搭建够用了。
在 ArteryTek 提供的固件库 BSP 中都默认建立好了常用 IDE 的模板工程。 BSP 可从雅特力科技
官方网站→产品讯息→车载型 MCU→AT32A4xx 系列获取。 BSP 中创建 at32_ide/eclipse_gcc/Keil_v5/Keil_v4/IAR_6.10/IAR_7.4/IAR_8.2/IAR_9.3 的模板工程存放路径为 AT32A423_Firmware_Library_V2.x.x\project\at_start_a4xx\templates打开对应工程的文件夹并点击工程文件即可打开对应的 IDE 工程。如下是 Keil_v5 工程示例 工程内添加的内容描述如下
① at32a423_clock.c 时钟配置文件设置了默认的时钟频率及时钟路径。
② at32a423_int.c 中断文件默认编写了部分内核中断函数的代码流程。
③ main.c 模板工程的主代码文件。
④ at32a423_board.c 板级配置文件设置了 AT-START 上的按键和 LED 等常用硬件配置。
⑤ firmware 下的 at32a423_xx.c 是各片上外设的驱动文件。
⑥ system_at32a423.c 系统初始化文件。
⑦ startup_at32a423.s 启动文件。
⑧ readme.txt工程的明文件记录模板工程一些应用功能、设置方式以及关联应用笔记ApNote等信息。除了 templates 外BSP 还按照外设分类提供了大量的 examples 示例代码Keil_v5 工程文件供用户参考用户只需要直接打开即可。存放路径为 :
AT32A423_Firmware_Library_V2.x.x\project\at_start_a4xx\examples注意关于 BSP 的更多详细说明请参考《AT32A423 固件库 BSPPack 应用指南》的“4 BSP 使用简述”
章节存放路径为雅特力科技官方网站→产品讯息→车载型 MCU→AT32A4xx 系列下载的 BSP 解压后*\AT32A423_Firmware_Library_Vx.x.x\document**。*
AT32点灯操作
LED原理图
低电平导通LED点亮。 GPIO寄存器 查看源码开灯能理解那么关灯同样是清除怎么理解
写’1’的位其对应 ODT 寄存器位会清除清除后那个位变成0还是1,肯定是0啊那不导通吗
uint16_t为16位 SCR寄存器要看下面这行 为1的位置起即高电平 所以灯熄灭LED源码分析 * brief configure led gpio* param led: specifies the led to be configured.* retval none*/
void at32_led_init(led_type led)
{gpio_init_type gpio_init_struct; //GPIO配置结构体/* enable the led clock */crm_periph_clock_enable(led_gpio_crm_clk[led], TRUE); //时钟使能/* set default parameter */gpio_default_para_init(gpio_init_struct); //GPIO默认初始化/* 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); //GPIO初始化
}/*** brief turns selected led on.* param led: specifies the led to be set on.* this parameter can be one of following parameters:* arg LED2* arg LED3* arg LED4* retval none*/
void at32_led_on(led_type led)
{if(led (LED_NUM - 1))return;//检查指定 LED 的 GPIO 引脚是否有效if(led_gpio_pin[led]) led_gpio_port[led]-clr led_gpio_pin[led];//写入 clr 寄存器来将对应的 LED 点亮
}/*** brief turns selected led off.* param led: specifies the led to be set off.* this parameter can be one of following parameters:* arg LED2* arg LED3* arg LED4* retval none*/
void at32_led_off(led_type led)
{if(led (LED_NUM - 1))return;if(led_gpio_pin[led])/* GPIO 端口 led_gpio_port[led]为1的位清除即将对应的 ODT 寄存器位清除 */led_gpio_port[led]-scr led_gpio_pin[led];
}/*** brief turns selected led toggle.* param led: specifies the led to be set off.* this parameter can be one of following parameters:* arg LED2* arg LED3* arg LED4* retval none*/
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];
}