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

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

在搭建好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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C#与其它编程语言有什么区别,以及相关优势有哪些
  • Java 事务管理:确保数据一致性
  • FPGA开发——DS18B20读取温度并且在数码管上显示
  • 【达梦数据库】锁超时的处理方法-错误码[-6407]
  • 微软edge浏览器开发工具全解析
  • MYSQL -NATURAL JOIN ,exist 函数
  • LeetCode 热题100-69 有效的括号
  • 设计模式-结构性模式-桥接模式
  • 风波中坚守:技术应对突发故障的危与机
  • 我们如何将数据输入到神经网络中?
  • day38.动态规划+MySql数据库复习
  • 视频检索技术为电子商务直播领域带来了前所未有的革新
  • Objective-C中的MVC架构:构建清晰、可维护的iOS应用
  • 【Hot100】LeetCode—101. 对称二叉树
  • web前端之选项卡的实现、动态添加类名、动态移除类名、动态添加样式、激活、间距、节流、tabBar
  • [译] 怎样写一个基础的编译器
  • 【剑指offer】让抽象问题具体化
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • css布局,左右固定中间自适应实现
  • CSS相对定位
  • Linux gpio口使用方法
  • Linux快速复制或删除大量小文件
  • Transformer-XL: Unleashing the Potential of Attention Models
  • V4L2视频输入框架概述
  • Vultr 教程目录
  • 阿里云购买磁盘后挂载
  • 大快搜索数据爬虫技术实例安装教学篇
  • 前端相关框架总和
  • 使用parted解决大于2T的磁盘分区
  • 一份游戏开发学习路线
  • 优化 Vue 项目编译文件大小
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • ionic入门之数据绑定显示-1
  • 数据可视化之下发图实践
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​io --- 处理流的核心工具​
  • #define与typedef区别
  • #include<初见C语言之指针(5)>
  • #QT(串口助手-界面)
  • (论文阅读40-45)图像描述1
  • (算法)大数的进制转换
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转) RFS+AutoItLibrary测试web对话框
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .mysql secret在哪_MySQL如何使用索引
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET编程——利用C#调用海康机器人工业相机SDK实现回调取图与软触发取图【含免费源码】
  • .NET的微型Web框架 Nancy
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • @RequestBody与@ModelAttribute
  • [Android]Android P(9) WIFI学习笔记 - 扫描 (1)
  • [BZOJ4554][TJOI2016HEOI2016]游戏(匈牙利)
  • [C# WPF] 如何给控件添加边框(Border)?
  • [C#]C# winform实现imagecaption图像生成描述图文描述生成