[APM32F4] 基于APM32F407-Tiny的Mbed-OS初入门系列

[复制链接]
 楼主| OneAnswer 发表于 2024-4-1 17:08 | 显示全部楼层 |阅读模式
基于APM32F407-Tiny的Mbed-OS初入门系列一
---点亮第一个流水灯
上篇文章已经带大家在电脑上安装好了Mbed Studio开发环境,接下来就带大家点亮第一个流水灯,点灯大业,开始!
APM32F407-Tiny的适配
Mbed OS官方已经适配了许多开发板,包括 STM32、Kinetis、LPC、PSoC 和 nRF52 在内的主要 MCU 系列,很遗憾,其中没有我们手上的这块APM32F407-Tiny开发板。不过天无绝人之路,Mbed OS提供了向 Mbed OS 平台添加新 MCU 目标的指南。导航:https://os.mbed.com/docs/mbed-os/v6.16/porting/index.html
像我这么热心的人肯定是不会让大家死磕官方文档的,手把手教学正式开始!
DAPLink固件下载配置。Mbed OS需要使用DAPLink开发,APM32F407-Tiny板载DAPLink下载器,固件可以到GEEHY的Github仓库下载,导航:https://github.com/GeehySemi/mbed-os-DAPLINK-Hardware
无法访问Github的小伙伴可以访问链接:https://pan.baidu.com/s/1dh3qej8tHj9wLiApFABYcA?pwd=4h1d 提取码:4h1d
文件下载解压后下载固件到板载的DAPLink即可(不会下载固件的小伙伴可以评论区留言)
52a41c9e9fc44b5c5fb6224af38afee8
下载完固件后把开发板连接到电脑,DAPLink会被识别为一个U盘,可以实现拖拽下载功能
1bc7ac0cf4d32eb89dd61f32ae9f790d
打开设备管理器也可以看到DAPLink已经正常识别
f27d68d8eba6c71b17d0b962d02d0328
到这里我们的DAPLink就配置好了。
APM32F407-Tiny的Mbed OS工程适配
由于Mbed OS官方还没有把Geehy的源码合并,所以我们需要去Geehy仓库下载源码手动合并进工程,导航:https://github.com/GeehySemi/mbed-os
无法访问Github的小伙伴可以访问链接:链接:https://pan.baidu.com/s/1TYG9EUzb7minH3pP_eCekw?pwd=0p4f提取码:0p4f
下载解压后我们就得到了包含Geehy源码的Mbed OS文件
b301a155d0634eb682367d38e6826c3a
接下来用Type-C数据线将我们的APM32F407-Tiny开发板连接到PC,打开上次建立的流水灯工程
0805f282c27cd641180de1bfffac5863
接下来我们新建APM32F407-Tiny开发板的Target
225a2ba9c9619dd87b42a0f76b6cfd71
bf89bf842706ee5dc44e5ed476bf738d
第一项USB device软件会自动识别,选择即可。第二项需要手动输入。第三项单击后会自动生成文件custom_targets.json
cdaf3e1b034eda0ef1398e4652e8f425
配置代码如下,直接复制即可:
{
    "APM32F407IE": {
        "inherits": ["APM32F407IG-Tiny"],
         "device_name": "APM32F407IE",
        "config": {
            "overrides": {
                "clock_src": "USE_PLL_HSE_XTAL|USE_PLL_HSI"
            },
            "hse_value": {
                "value": "8000000",
                "macro_name": "HSE_VALUE"
            }
        }
    }
}
保存文件后再次打开Target界面即可看到新配置的Build target
016ff27e6a9f4ec1541532afe1c96d29
点击Save All关闭界面,在Target选择界面就会自动识别出我们的APM32F407-Tiny开发板
1d4057bb37398657f90ca85a8005776c
到这里APM32F407-Tiny的Mbed OS工程适配就已经完成了,接下来就可以进行编译下载操作了。
流水灯,亮!
软件生成的代码默认是点亮LED1,我们需要将其改为LED2,将main函数代码改为:
  DigitalOut led(LED2);
    while (true) {
        led = !led;
        ThisThread::sleep_for(BLINKING_RATE);
    }
4c6bdc3992d4f156f6da690af3d0cfc7
编译下载后即可在开发板上观察到板载的LED2闪烁,亮灯大业到这里就结束了,工程的适配已圆满完成,接下来我们就可以进行各种外设的开发使用了,冲~~~

caigang13 发表于 2024-4-2 07:57 来自手机 | 显示全部楼层
点灯第一步,永不过时,哈哈。
WoodData 发表于 2024-4-2 17:23 | 显示全部楼层
学习
OKAKAKO 发表于 2024-4-15 20:17 | 显示全部楼层
IO控制第一步使用
huquanz711 发表于 2024-4-16 07:39 来自手机 | 显示全部楼层
这个OS有什么特殊之处?
szt1993 发表于 2024-4-16 19:21 | 显示全部楼层
需要手动合并代码嘛?
 楼主| OneAnswer 发表于 2024-5-16 17:54 | 显示全部楼层
szt1993 发表于 2024-4-16 19:21
需要手动合并代码嘛?

不需要手动合并
 楼主| OneAnswer 发表于 2024-5-16 17:57 | 显示全部楼层
huquanz711 发表于 2024-4-16 07:39
这个OS有什么特殊之处?

mbed OS是一款开源的物联网操作系统,由Arm公司推出。mbed OS专注于为嵌入式设备提供更高效、更安全和更灵活的操作系统支持,以满足物联网应用领域中的多样化需求。mbed OS基于RTOS(Real Time Operating System)架构,提供了丰富的API接口、设备驱动和网络协议栈等功能,可适用于各种微控制器和处理器平台
szt1993 发表于 2024-5-23 17:29 | 显示全部楼层
点灯***是开始学习的第一步
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

19

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

16

主题

19

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部