当前位置: 首页 > news >正文

【雅特力AT32】搭建模板工程及GPIO点灯操作

目录

AT32模板工程建立及点灯操作

建立AT32模板工程

AT32点灯操作

  1. LED原理图
  2. GPIO寄存器
  3. 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 固件库 BSP&Pack 应用指南》的“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];
}
http://www.lryc.cn/news/438236.html

相关文章:

  • 实战千问2大模型第三天——Qwen2-VL-7B(多模态)视频检测和批处理代码测试
  • 数据库索引底层数据结构之B+树MySQL中的页索引分类【纯理论干货,面试必备】
  • 编译QT源码时的configure参数须知
  • 如何利用人工智能大模型来进行数字化营销?
  • 【MRI基础】回波序列长度-echo train length ETL概念
  • (179)时序收敛--->(29)时序收敛二九
  • [Visual Stuidio 2022使用技巧]2.配置及常用快捷键
  • 每日奇难怪题(持续更新)
  • 江协科技STM32学习- P13 TIM定时器中断
  • git github仓库管理
  • 【JavaEE】线程安全性问题,线程不安全是怎么产生的,该如何应对
  • 低代码-赋能新能源汽车产业加速前行
  • 基于UDP的简易网络通信程序
  • AI大模型在知识管理平台上的应用:泛微·采知连实现自动采集.精准搜索.智能问答.主动推荐
  • JavaEE:文件内容操作(一)
  • 无人机视角下落水救援检测数据集
  • openssl+keepalived安装部署
  • float存储原理
  • DAY 9 - 10 : 树
  • 【python计算机视觉编程——9.图像分割】
  • 北斗赋能万物互联:新质生产力的强劲驱动力
  • 时序预测 | Matlab实现GA-CNN遗传算法优化卷积神经网络时间序列预测
  • 如何保证消息不重复消费
  • HTTP请求工具类
  • 谷歌的 DataGemma 人工智能是一个统计精灵
  • 【Python爬虫系列】_021.异步请求aiohttp
  • 源码运行springboot2.2.9.RELEASE
  • 王者荣耀改重复名(java源码)
  • Python 全栈系列271 微服务踩坑记
  • 环境搭建2(游戏逆向)