打印
[应用方案]

国产MCU专栏 第113期:项目实战!极海APM32最新优秀原创作品集

[复制链接]
521|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主


*阅读说明:排名不分先后,详细测评过程描述、源码及原理图资料等请戳原链接查看


我们最初在设计上也是使用了某欧洲品牌的Cortex-M3系列的MCU,由于国产化率的原因,我们也面临了必须选择国内品牌主控芯片的境地。在更换主控任务上,牵扯的人员还是蛮多的,硬件、软件、测试等。不过,极海的APM32F103在兼容性上面已经完全适配。
我们的方案中,我们使用Usart1做为RS485通讯的外设接口,使用Timer1和Timer3来产生互补PWM信号与PWM信号。对于电磁继电器与LED灯则直接使用了GPIO来控制,嗯,还有ULN2003这个驱动芯片。在软件上面,我们部署了Modbus-RTU协议的从站,通过RS485网络实时接收主站命令,回传数据。



“双堆栈”“MPU保护”这些概念常常令人产生疑惑:它们究竟能带来哪些好处?为什么要使用?如何配置?一旦配错会导致什么后果?出错后该怎么排查调试?为帮助大家系统了解这部分内容,本文将开始做一个全面而深入的剖析,辅以一段实际示例代码进行说明。本文覆盖如下主要内容:  
      1. 什么是APM32的双堆栈机制?  
      2. 使用双堆栈的动机与特点。  
      3. 双堆栈与MPU保护相结合可以实现什么?  
      4. 当我们切换到PSP(进程堆栈)或进入用户模式,会产生什么影响?  
      5. 具体的例程演示与代码剖析。  
      6. 在应用中可能面临的关键问题与常见错误。  
      7. 排查和调试思路。



想象一下,当你按下电源按钮,嵌入式设备瞬间苏醒,背后的秘密是什么?在今天的嵌入式开发中,理解 APM32 的启动流程不仅是工程师的基本功,更是解决复杂问题的关键。本文将带你一步步揭开 APM32 从上电到进入 main 函数的神秘面纱。



今天我们要聊聊嵌入式C语言开发里一个特别有用的技术——表驱动法(Table-Driven Programming)。别看名字有点高大上,其实它就是一个简单又高效的编程思路,尤其在像APM32F407这样的MCU(微控制器)上特别好使。这篇文章我会用大白话把这玩意儿讲清楚,从它是什么、为什么要有它、有什么好处,到最后怎么用它写个简单的例程,所以我会尽量细致,把每个点都掰开了揉碎了讲。



在早晨时分,有一类人即使用手机设置了闹铃依旧无法正常起床。这是因为闹铃只提供声音与振动信号,在长期适应下,人体产生惰性。而本设计选择一种刺激更为强烈的光信号作为人体唤醒机制。光线会唤醒视觉系统,由它传递信号给潜意识,并叫醒脑部。



有了ST-LINK的固件和ST-LINK升级工具,我预计自己也能制作APM-LINK。于是逆向了一下电路,制作成功。名字中用APM是因为这次使用的不是ST芯片,而是采用极海的APM32F103CBT6。



最近在玩MAX30102,想实现一个简单的测量心率和血氧饱和度。本文就使用APM32F4驱动MAX30102进行心率和血氧饱和度(SpO2)的测量的实现记录。
在本文我尝试着详细说明MAX30102的工作原理、配置、数据采集过程以及关键代码的实现。
MAX30102与APM32F4通过I2C接口进行通信。APM32F4作为I2C主机,控制MAX30102传感器。我们将配置I2C接口,初始化传感器,并通过I2C读取传感器数据。



最近客户使用纳芯微的NSL21924系列LED驱动设计尾灯项目,该项目有功能安全需求,需要通信失效时,对应的输出通道灯亮或灯灭,刚好21924带有两路的FS引脚控制烧录EEPROM后就可以满足客户需求。由于客户是第一次使用21924,而且原厂没有现成的示例代码,结合手上现有的APM32F103开发板配合NSL21924 demo给客户一个参考示例,解决客户的燃眉之急。



访问 极海APM32 MCU 论坛,可查看更多开源作品~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

175

主题

713

帖子

37

粉丝