【3】AT32F437 OpenHarmony轻量系统第一个程序:点灯

devtools/2024/12/22 19:41:21/

在搭建好AT32F437 OpenHarmony 轻量系统之后,当然要尝试点一下灯了。

编写点灯程序

笔者在适配OpenHarmony轻量系统的时候,只对源码的device和vendor目录进行了修改,AT32的app目录笔者放置在了vendor/tree/master/artery/AT-START-F437/app路径下。

1.分析原理图掌握led灯连接的gpio口,可知PD13、PD14、PD15分别连接这三个灯。

image.png

2.使用AT32437的驱动库初始化gpiod,驱动库的存放路径位于device/tree/master/soc/artery/at32f4xx/libraries/drivers/src路径下

    //开启GPIOD的时钟crm_periph_clock_enable(CRM_GPIOD_PERIPH_CLOCK, TRUE);//gpio结构体gpio_init_type gpio_config;//io管脚gpio_config.gpio_pins = GPIO_PINS_13 | GPIO_PINS_14 | GPIO_PINS_15;   //输出模式   gpio_config.gpio_mode = GPIO_MODE_OUTPUT;//无上下拉电阻gpio_config.gpio_pull = GPIO_PULL_NONE;//设置为推挽输出模式,即引脚可以提供高电平和低电平输出。gpio_config.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;/*    GPIO_DRIVE_STRENGTH_MODERATE 对应适中的电流推动/吸入能力GPIO_DRIVE_STRENGTH_STRONGER 对应较大的电流推动/吸入能力GPIO_DRIVE_STRENGTH_MAXIMUM 对应极大的电流推动/吸入能力如果 IO 速度设置为最大的推动力设置,且负载较小时,易在 IO 上产生过冲振铃现象,存在影响应用的可能性*/gpio_config.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;//初始化gpiogpio_init(GPIOD, &gpio_config);           // group C

3.然后操作数据寄存器odt控制输出高低电平点亮熄灭led

    while (TRUE) {printf("GpioTask: LED_On\n");//通过GPIO输入数据寄存器odt输出高电平,也可以通过gpio_bits_set来输出高电平(可以查看gpio_bits_set定义)GPIOD->odt |= GPIO_PINS_13;GPIOD->odt |= GPIO_PINS_14;GPIOD->odt |= GPIO_PINS_15;//gpio_bits_set(GPIOD,GPIO_PINS_1);//sleep(1);//delay_ms(10);//delay_sec(1);osDelay(80);printf("GpioTask: LED_Off\n");//通过GPIO输入数据寄存器odt输出高电平,也可以通过gpio_bits_reset来输出高电平(可以查看gpio_bits_reset定义)GPIOD->odt &= ~GPIO_PINS_13;GPIOD->odt &= ~GPIO_PINS_14;GPIOD->odt &= ~GPIO_PINS_15;//gpio_bits_reset(GPIOD,GPIO_PINS_1);//sleep(1);//delay_ms(10);//delay_sec(1);osDelay(80);}

4.具体实现代码请查看
https://gitee.com/AT32437_OpenHarmony/vendor/blob/master/artery/AT-START-F437/app/0_led_test/main.c

5.打开vendor/artery/AT-START-F437/app/BUILD.gn,把样例注释打开

image.png


然后在 vendor/artery/AT-START-F437/BUILD.gn中,把样例注释打开

image.png

编译烧录程序

./build.sh --product-name AT-START-F437 --ccache --no-prebuilt-sdk

编译好的固件是out\atstartf437\AT-START-F437\binAT-START-F437.bin文件

1.AT-START-F437开发板自带块ATlink调试接口。首先安装ATlink驱动

image.png

2.打开ICP烧录工具

image.png

3.点击连接,添加bin文件或者hex文件。开始下载文件到开发板上

image.png

3.最后完成烧录断开连接

image.png


http://www.ppmy.cn/devtools/97628.html

相关文章

同步外网YUM源-3

在企业实际应用场景中,仅仅靠光盘里面的RPM软件包是不能满足需要,我们可以把外网的YUM源中的所有软件包同步至本地,可以完善本地YUM源的软件包数量及完整性。 获取外网YUM源软件常见方法包括Rsync、Wget、Reposync,三种同步方法的区别Rsync方式需要外网YUM源支持RSYNC协议…

8.20模拟赛题解

简单点评一下 整体上来看 ,A题拿满分的同学可能占一半吧 ,这个数据其实是不太理想的 ,说明同学们对于思维模拟题还是不熟练,没抓住题目要分析的本质。 B题显然是保证有解的,有解的情况下问最优解,说明翻到满…

【面向对象】03面向对象三大特征之——封装、包、访问权限、static静态

文章目录 封装包包的创建包的导入 访问权限static 静态成员变量成员方法静态代码块 封装 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。即:隐藏类的内部实现细节,对…

VMwareWorkstation安装ESXi 7.0U3系统详细教程

版本信息 VMwareWorkstation版本如下: ESXI系统镜像版本如下: 安装步骤 ESXi虚拟机硬件配置 选择创建新的虚拟机 选择自定义,点击下一步 选择ESXi 7.0,点击下一步 选择稍后安装操作系统,点击下一步 按照图下所示选择…

【vue讲解:vue3介绍、setup、ref、reactive、监听属性、生命周期、toRef、setup写法】

1 vue3介绍 # Vue3的变化-vue3完全兼容vue2---》但是vue3不建议用vue2的写法-拥抱TypeScript-之前咱们用的JavaScript---》ts完全兼容js- 组合式API和配置项APIvue2 是配置项apivue3 组合式api# vue4必须要用2 vue3项目创建和启动 # 创建vue3项目-vue-cli 官方不太建议用了…

集师知识付费小程序搭建。。。

在这个月,我朋友依托知识付费小程序,巧妙融合了线上活动与线下实践,成功实现了十万元的收入。小程序内,我精心策划了一系列高质量的课程与直播讲座,涵盖热门领域与专业技能,吸引了大量求知若渴的学员。通过…

华为nova2下无需root安装Metasploit

华为nova2下安装google play store失败 从http://www.apkmirror.com/中下载termux 通过数据线传到手机上并安装 进入termux后执行如下指令: pkg install curl curl -OL https://raw.githubusercontent.com/Hax4us/Metasploit_termux/master/metasploit.sh chmod x …

AWS不同类型的EC2实例分别适合哪些场景?

Amazon Web Services(AWS)的弹性计算云(EC2)提供了多种实例类型,以满足不同的应用需求和工作负载。了解不同类型的 EC2 实例及其适用场景,可以帮助用户更好地优化性能和控制成本。九河云和大家一起了解一下…