手把手教你:如何让STM32F103代码在Air32F103和CH32F203上跑起来(附时钟配置避坑指南)

AIR32F103(一) 合宙AIR32F103CBT6开发板硬件解析与快速入门指南 本文详细解析了合宙AIR32F103CBT6开发板的硬件特性与快速入门方法。该开发板核心为高性能国产MCU AIR32F103,主频高达216MHz,引脚与STM32F103兼容,便于硬件升级与国产化替代。文章涵盖开箱印象、硬件细节、开发环境搭建、性能实测及外设应用,并重点介绍了其板载DAP-Link调试器的便利性,是学习高性能ARM Cortex-M3开发的理想选择。 阅读详情

国产MCU迁移实战:STM32F103代码移植到Air32F103与CH32F203全流程解析

最近两年,国产MCU的崛起给嵌入式开发者带来了更多选择,但同时也带来了移植适配的挑战。上周我接手了一个工业控制项目,需要将原有STM32F103C8T6的代码迁移到Air32F103和CH32F203平台。本以为同是Cortex-M3内核应该很容易,结果在时钟配置和GPIO映射上踩了不少坑。本文将分享完整的移植流程,特别是那些官方文档没有明确指出的细节问题。

1. 开发环境准备与工程配置

在开始代码移植前,正确的开发环境配置可以避免很多后续麻烦。我推荐使用Keil MDK作为开发环境,因为它对这三种芯片都有较好的支持。

1.1 设备包安装

首先需要安装各厂商的设备支持包:

  • STM32F103:ST官方提供的STM32F1xx_DFP
  • Air32F103:合宙提供的Air32F1xx_DFP
  • CH32F203:沁恒提供的CH32F20x_DFP

注意:CH32F203的设备包需要从沁恒官网下载最新版本,早期的版本可能存在寄存器定义不全的问题。

1.2 工程配置调整

在Options for Target对话框中,需要检查以下关键配置项:

配置项 STM32F103典型值 Air32F103调整点 CH32F203调整点
Device STM32F103C8 Air32F103C8 CH32F203C8
Flash Algorithm STM32F10x 64K Air32F10x 64K CH32F20x 64K
IRAM1 Size 0x5000 0x5000 0x6000
Xtal Frequency 8MHz 8MHz 8MHz

2. 时钟系统配置差异与解决方案

时钟配置是移植过程中最容易出问题的部分,三种芯片虽然都基于Cortex-M3,但时钟树设计有显著差异。

2.1 主频配置对比

先来看下各芯片支持的最高主频:

  • STM32F103:72MHz
  • Ai
手把手教你:如何将STM32F103项目快速移植到Air32F103和CH32F203(附代码对比) 本文详细介绍了如何将STM32F103项目高效移植到国产MCU Air32F103和CH32F203平台,涵盖工程配置、外设驱动适配、中断系统调整等关键步骤。通过代码对比和实战技巧,帮助开发者快速实现程序互通,应对供应链挑战并降低开发成本。 阅读详情

相关推荐

手把手教你:如何将STM32F103项目快速迁移到国产Air32F103或CH32F203(附代码对比)

本文详细介绍了如何将STM32F103项目快速迁移到国产Air32F103或CH32F203芯片的实战指南。通过对比时钟配置、GPIO映射、外设驱动等关键差异,提供代码改造示例和调试方案,帮助开发者高效完成程序互通,应对芯片短缺或成本压力。

weixin_31355483的博客 309

APM32/Air32/CH32/STM32混用指南:一个项目如何兼容四种Cortex-M3芯片?

本文详细介绍了如何在嵌入式项目中实现APM32、Air32、CH32和STM32四种Cortex-M3芯片的兼容设计。通过硬件抽象层(HAL)设计、条件编译与工程配置、时钟系统兼容性处理等关键技术,帮助开发者解决多厂商芯片混用时的程序互通问题,提升项目灵活性和可维护性。

weixin_32770423的博客 273

国产MCU“战国时代”:从APM、Air32到CH32,我们该如何管理多平台代码库?

本文探讨了国产MCU多平台代码库管理的实战策略,涵盖APM32、Air32F103、CH32F203等与STM32F103的兼容性问题。通过硬件抽象层设计、多厂商SDK统一管理、构建系统优化及自动化测试等方法,帮助开发者实现代码的高效维护与跨平台移植,确保供应链安全和技术自主。

weixin_31682031的博客 263

国产MCU混战时代:APM32/Air32/CH32/STM32,你的项目该选谁?一份避坑指南

本文深入对比了国产MCU APM32、Air32F103、CH32F203与STM32的性能参数、开发工具链及代码移植要点,提供选型避坑指南。重点分析主频、功耗、开发环境适配等核心差异,帮助开发者在消费电子、工业控制等场景中做出最优选择,特别关注程序互通与量产风险。

weixin_31774841的博客 337

国产沁恒CH32F203CB调试记录

打开keil软件,选择“Project” -> “New Project”,在弹出的窗口中选择“Target”选项,并选上合适的设备型号和编译器。使用串口下载,需要提前将Boot0电平拉到高电平,(默认运行状态是Boot0是拉低状态的),然后插上供电连接USB转串口下载器到电脑端,使用WCHISPTool进行下载。使用USB下载方式,同样需要提前将Boot0电平拉到高电平,(默认运行状态是Boot0是拉低状态的),通过PA11和PA12连接到电脑端,使用WCHISPTool进行下载。

wangjie36的博客 1740

工业级隔离CAN FD收发器ISO1042设计实战:从原理到EMC防护

在工业自动化与伺服驱动系统中,CAN总线是实现设备间可靠通信的关键技术。其核心原理是通过差分信号传输和仲裁机制,在复杂电磁环境中实现多节点实时数据交换。这项技术的核心价值在于为高噪声、高干扰的工业现场提供了稳定、确定性的通信基础,是构建分布式控制系统不可或缺的环节。其典型应用场景包括新能源汽车电池管理、工业机器人伺服控制以及光伏逆变器集群通信等。本文将聚焦于如何通过高性能隔离CAN FD收发器(如TI的ISO1042)来应对地电位差、浪涌和高压串扰等现场挑战,深入解析其集成的电气隔离、±70V总线故障保护和

weixin_26834815的博客 383

Gamit 数据处理,相关的文件配置

一、处理前准备 1、在主文件夹内新建test项目文件,项目内新建brdc、igs和rinex三个文件夹,分别存放广播星历,精密星历几观测值文件,所用的命令分别为sh_get_nav、sh_get_orbits和sh_get_rinex (若文件为.Z,用gunzip命令解压,若仍为d,用命令sh_crx2rnx -f 命令解压为o文件) 2、进入test项目文件夹,链接tables,运行 sh_setup -yr 2015 -apr itrf08_com.apr 3、生成station.info文件。 将t

CodeDoraemon的博客 3375

别再只测电压了!用STM32G474的ADC玩点花的:过采样提升精度与多通道扫描实战

本文深入探讨了STM32G474系列单片机的ADC高级应用,包括硬件过采样技术实现16位精度和多通道扫描结合DMA的自动数据采集方案。通过详细的配置步骤和实战案例,帮助开发者突破传统电压测量局限,提升信号采集精度和系统效率,适用于工业监控、医疗设备等高精度应用场景。

weixin_42647395的博客 237

使用3sigma原则去除数据表中的极端值

本文使用3sigma解决数据表中出现的极端值问题,其中包括基本原理、使用原则(检验方法)、代码展示这3个部分

qq_51397866的博客 4377

OS实验xv6 6.S081 开坑

OS实验xv6 6.S081 开坑 终于把xv6 2019 6.S081做完了,网络部分没有写,因为有计网实验了。怎么说呢,xv6的坑有点多,能做完多亏了:和我同学ljj交流,参考RedemptionC老哥的博客(他写的非常详细,遗憾的是,他好像没有写mmap),再者就是参考这位老哥的做法(没有源码,写得不是特别详细,不过有借鉴作用,mmap就是借鉴了他的思想)……废话不多说了,直接开始。 实验指导 首推RedemptionC的博客 这位老哥的个人博客 xv6 6.S081官网(后面的实验都要参考官网

不定期更新系统使用、编程小技巧,哔哩哔哩账号:https://space.bilibili.com/399455629,欢迎关注 4493

GraphRAG 踩坑记录

GraphRAG踩坑记录

yufanwenshu的博客 4350

国产AI芯动力:复旦微FMQL100TAI900 FPGA原型验证板全解析

本文全面解析了复旦微FMQL100TAI900 FPGA原型验证板在国产AI硬件领域的创新突破。该板卡采用全栈国产化设计,具备出色的AI推理性能、视频处理能力和接口生态,特别适合工业质检、智能交通等场景。文章详细介绍了其芯片架构、存储子系统、接口扩展及电源设计,并分享了实战开发经验,为开发者提供了一套可靠的国产计算平台解决方案。

weixin_29250573的博客 456

Linux下搭建简易的HTTP服务器完成图片显示

篇文章作为Linux下socket(TCP)网络编程的练习,使用C语言代码搭建一个简单的HTTP服务器,完成与浏览器之间的交互,最终在浏览器上显示一张图片;通过这个例子可以巩固socket里多线程使用,也可以方便学习了解HTTP协议。

2587

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

上一篇: 从遥感数据处理到地图应用:GDAL C++库在Windows下的实战入门与项目配置指南
下一篇: 别再手动配IP了!用DHCP+路由器绑定,轻松管理你的Proxmox VE服务器
cotchte0421
博客等级 码龄12年 5粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值