当前位置: 首页 > 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];
}

相关文章:

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

目录 AT32模板工程建立及点灯操作 建立AT32模板工程 AT32点灯操作 LED原理图GPIO寄存器LED源码分析 建立AT32模板工程 从0到编译运行详细搭建保姆教程: 【雅特力AT32】Keil 环境:搭建标准库模板工程、使用 AT-Link、Debug 里选择 CMSIS-DAP调试器 下面做…...

实战千问2大模型第三天——Qwen2-VL-7B(多模态)视频检测和批处理代码测试

画面描述:这个视频中,一位穿着蓝色西装的女性站在室内,背景中可以看到一些装饰品和植物。她双手交叉放在身前,面带微笑,似乎在进行一场演讲或主持活动。她的服装整洁,显得非常专业和自信。 一、简介 阿里通义千问开源新一代视觉语言模型Qwen2-VL。其中,Qwen2-VL-72B在大…...

数据库索引底层数据结构之B+树MySQL中的页索引分类【纯理论干货,面试必备】

目录 1、索引简介 1.1 什么是索引 1.2 使用索引的原因 2、索引中数据结构的设计 —— B树 2.1 哈希 2.2 二叉搜索树 2.3 B树 2.4 最终选择之——B树 2.4.1 B树与B树的对比(面向索引)【面试题】 3、MySQL中的页 3.1 页的使用原因 3.2 页的结构 3.2.1 页文件头和页文件…...

编译QT源码时的configure参数须知

文章目录 一、configure help原文二、configure help机译三、features 执行命令得到configure帮助文件 qtsrc/configure --help一、configure help原文 Usage: configure [options] [-- cmake-options]This is a convenience script for configuring Qt with CMake. Options…...

如何利用人工智能大模型来进行数字化营销?

这是一本关于如何利用人工智能大模型来进行数字化营销并驱动业绩增长的书。人工智能大模型是指那些具有超大规模的参数和数据的人工智能模型,它们能够在各种复杂的任务上表现出惊人的能力。 在本书中,你将学习到如何在电商、广告和用户增长等数字化营销业…...

【MRI基础】回波序列长度-echo train length ETL概念

回波序列长度 回波序列长度 (echo train length, ETL) 是磁共振成像 (MRI) 中的一个重要参数,它对图像采集时间和图像质量有显著影响。ETL 是指在单个激励脉冲之后的 MRI 序列中采集的回波数量。通过增加 ETL,可以在一个重复时间 (TR) 内收集多个回波&a…...

(179)时序收敛--->(29)时序收敛二九

1 目录 (a)FPGA简介 (b)Verilog简介 (c)时钟简介 (d)时序收敛二九 (e)结束 1 FPGA简介 (a)FPGA(Field Programmable Gate Array)是在PAL (可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域…...

[Visual Stuidio 2022使用技巧]2.配置及常用快捷键

使用vs2022开发WPF桌面程序时常用配置及快捷键。 语言:C# IDE:Microsoft Visual Studio Community 2022 框架:WPF,.net 8.0 一、配置 1.1 内联提示 未开启时: 开启后: 开启方法: 工具-选…...

每日奇难怪题(持续更新)

1.以下程序输出结果是() int main() {int a 1, b 2, c 2, t;while (a < b < c) {t a;a b;b t;c--;}printf("%d %d %d", a, b, c); } 解析:a1 b2 c2 a<b 成立 ,等于一个真值1 1<2 执行循环体 t被赋值为1 a被赋值2 b赋值1 c-- c变成1 a<b 不成立…...

江协科技STM32学习- P13 TIM定时器中断

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…...

git github仓库管理

原文链接&#xff1a;git github仓库管理 拉取镜像 github的仓库有两种下载方式,http和ssh,http是对外公开的,可以直接clone,ssh的一般是自己的或内部的仓库,仓库需要配置ssh-key才能使用git clone. 或者直接网页下载 #https git clone https://github.com/git/git.git #ssh…...

【JavaEE】线程安全性问题,线程不安全是怎么产生的,该如何应对

产生线程不安全的原因 在Java多线程编程中&#xff0c;线程不安全通常是由于多个线程同时访问共享资源而引发的竞争条件。以下是一些导致线程不安全的常见原因&#xff1a; 共享可变状态&#xff1a;当多个线程对共享的可变数据进行读写时&#xff0c;如果没有适当的同步机制&…...

低代码-赋能新能源汽车产业加速前行

在“双碳”战略目标的引领下&#xff0c;全球新能源汽车产业正经历着前所未有的发展和变革&#xff0c;新能源汽车整车制造成为绿色低碳转型的重要领域。在政府的大力扶持下&#xff0c;新能源整车制造领域蓬勃发展&#xff0c;已成为全球汽车产业不可逆转的重要趋势。新能源汽…...

基于UDP的简易网络通信程序

目录 0.前言 1.前置知识 网络通信的大致流程 IP地址 端口号&#xff08;port&#xff09; 客户端如何得知服务器端的IP地址和端口号&#xff1f; 服务器端如何得知客户端的IP地址和端口号&#xff1f; 2.实现代码 代码模块的设计 服务器端代码 成员说明 成员实现 U…...

AI大模型在知识管理平台上的应用:泛微·采知连实现自动采集.精准搜索.智能问答.主动推荐

AI技术的发展&#xff0c;正在推动组织知识管理模式发生变革。知识管理系统通过各种应用实现知识体系落地&#xff0c;当前聚焦于整合生成式AI技术&#xff0c;以提升业务效率。 组织在数字化进程中面临着知识增量增多、知识更新频率变快、知识与业务结合更紧密等挑战&#xff…...

JavaEE:文件内容操作(一)

文章目录 文件内容的读写---数据流字节流和字符流打开和关闭文件文件资源泄漏try with resources 文件内容的读写—数据流 文件内容的操作,读文件和写文件,都是操作系统本身提供了API,在Java中也进行了封装. Java中封装了操作文件的这些类,我们给它们起了个名字,叫做"文…...

无人机视角下落水救援检测数据集

无人机视角下落水救援检测数据集&#xff0c;利用无人机快速搜索落水者对增加受害者的生存机会至关重要&#xff0c;该数据集共收集12万帧视频图像&#xff0c;涵盖无人机高度从10m-60m高度&#xff0c;检测包括落水者&#xff08;11万标注量&#xff09;、流木&#xff08;900…...

openssl+keepalived安装部署

文章目录 OpenSSL安装下载地址编译安装修改系统配置版本 Keepalived安装下载地址安装遇到问题安装完成配置文件 keepalived运行检查运行状态查看系统日志修改服务service重新加载systemd检查配置文件语法错误 OpenSSL安装 下载地址 ​ 考虑到后面设备可能没法连接到外网&…...

float存储原理

float存储原理基于IEEE 754标准&#xff0c;主要包括符号位、指数位和有效数字位三部分。以下是对其存储原理的具体介绍&#xff1a; 符号位&#xff1a;符号位是浮点数中用于表示正负的位。在单精度浮点数&#xff08;32位&#xff09;中&#xff0c;最左边的第1位是符号位&a…...

DAY 9 - 10 : 树

树的概念 定义 树&#xff08;Tree&#xff09;是n&#xff08;n≥0&#xff09;个节点的有限集合T&#xff0c;它满足两个条件 &#xff1a; 1.有且仅有一个特定的称为根&#xff08;Root&#xff09;的节点。 2.其余的节点可以分为m&#xff08;m≥0&#xff09;个互不相交的…...

Keil工程管理效率翻倍:Python脚本实现构建结果自动归档与HTML报告生成

Keil工程管理效率翻倍&#xff1a;Python脚本实现构建结果自动归档与HTML报告生成 在嵌入式开发领域&#xff0c;Keil作为主流开发工具链的核心组件&#xff0c;其工程管理效率直接影响着团队协作和产品迭代速度。传统开发流程中&#xff0c;工程师往往需要手动收集每次构建生成…...

别再只会发文本了!SpringBoot整合钉钉机器人,这5种高级消息模板让你的通知更专业

SpringBoot与钉钉机器人&#xff1a;五种高级消息模板实战指南 如果你还在用单调的文本消息推送系统通知&#xff0c;那么你的团队协作工具可能只发挥了50%的潜力。钉钉机器人提供的富文本消息类型&#xff0c;能够将枯燥的系统通知转化为直观、交互式的信息卡片&#xff0c;显…...

GPU资源管理混乱?nvitop一站式解决方案深度解析

GPU资源管理混乱&#xff1f;nvitop一站式解决方案深度解析 【免费下载链接】nvitop An interactive NVIDIA-GPU process viewer and beyond, the one-stop solution for GPU process management. 项目地址: https://gitcode.com/gh_mirrors/nv/nvitop 在深度学习训练、…...

Pixel Dream Workshop 算法原理浅析:从扩散模型到创意生成

Pixel Dream Workshop 算法原理浅析&#xff1a;从扩散模型到创意生成 1. 引言&#xff1a;理解扩散模型的价值 最近两年&#xff0c;扩散模型在图像生成领域掀起了一场革命。从最初的DALLE到Stable Diffusion&#xff0c;再到各种创意生成工具&#xff0c;这项技术正在改变我…...

Ice:macOS菜单栏管理终极指南,彻底告别杂乱无章

Ice&#xff1a;macOS菜单栏管理终极指南&#xff0c;彻底告别杂乱无章 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice 想要彻底掌控macOS菜单栏&#xff0c;告别杂乱无章的图标堆积吗&#xff1f;I…...

ECG-Emotion Recognition(情绪识别)实战指南:WESAD与DREAMER数据集深度解析与应用

1. 情绪识别与ECG技术入门指南 第一次接触ECG情绪识别时&#xff0c;我和大多数人一样充满疑惑&#xff1a;心跳数据真能反映人的情绪&#xff1f;经过三个月的项目实践&#xff0c;我可以肯定地说&#xff0c;ECG信号就像情绪的"心电图"&#xff0c;愤怒时心跳加速、…...

【STM32实战】步进电机S型曲线算法优化与误差补偿策略

1. 为什么需要S型曲线算法 我第一次用步进电机做项目时&#xff0c;直接给电机发固定频率的脉冲让它转起来。结果电机启动瞬间发出"咔咔"的异响&#xff0c;运行起来也一顿一顿的。后来才知道&#xff0c;步进电机最怕的就是突然加速或急停&#xff0c;这会导致丢步、…...

MambaAD实战:5分钟搞定工业缺陷检测的SoTA模型部署(附代码)

MambaAD工业缺陷检测实战&#xff1a;从模型原理到产线部署全指南 引言&#xff1a;当状态空间模型遇见工业质检 在液晶面板生产线上&#xff0c;一个0.1mm的亮点缺陷可能导致整批产品报废&#xff1b;在汽车零部件铸造车间&#xff0c;细微的表面裂纹可能引发严重的安全隐患。…...

别再死记公式了!用Python+Matplotlib亲手仿真LC并联谐振,直观理解选频原理

用PythonMatplotlib动态仿真LC并联谐振&#xff1a;从代码到物理直觉的沉浸式探索 当教科书上的LC并联谐振公式变成屏幕上跳动的曲线&#xff0c;当抽象的Q值概念转化为滑块调节时的实时波形变化&#xff0c;电子工程的学习便从枯燥的符号演算升维为一场充满探索乐趣的科学实验…...

从‘它怎么又挂了’到‘服务稳如狗’:我是如何用Prometheus+Grafana给自家小项目做监控的

从零搭建轻量级服务监控&#xff1a;PrometheusGrafana实战指南 凌晨三点&#xff0c;手机突然响起刺耳的警报声——这已经是本周第三次被线上服务宕机惊醒。作为独立开发者或小团队&#xff0c;我们往往身兼数职&#xff0c;既要写代码又要维护基础设施。服务崩溃时才发现问题…...