
嵌入式技术分享专栏
文章平均质量分 82
本专栏旨在搭建一个知识共享和交流的平台,涵盖编程语言、框架、工具、算法等前沿技术分享,以及实际项目开发过程中的经验总结。通过技术分享,来提升各位学者技术实力和创新能力。
掌芯元器官方博客
掌芯元器 — 专注嵌入式教育,助力国产MCU新时代!!!主营ST/GD/AT/HC等MCU开发板(以国产MCU为主)、loT物联网、Linux、技术服务、技术开发、技术咨询、技术交流。掌芯元器陪您一路高歌,助您更上一层楼 !!!
展开
-
栈的C实现
栈(Stack)是一种后进先出的数据结构,类似于一个垂直的容器。栈的特点是后进先出,即最后入栈的元素最先出栈。栈可以用来解决递归问题、实现函数调用、以及存储临时数据等。例如,在计算机科学中,栈常用于实现函数调用栈,记录函数调用的顺序和参数。希望本文通过使用C语言实现栈操作可以帮助读者理解栈的基本原理。原创 2024-10-10 23:16:32 · 745 阅读 · 1 评论 -
STM32转AT32代码转换
在嵌入式开发中,我们经常会遇到更换单片机芯片的事情,若芯片是同一厂家的还好说,若是不同厂家的则需要重新写,重新调,重新去学习其底层驱动程序,比较费时费力。包括 ST 与 AT 的 BSP 标准库中的宏定义、函数名称以及参数、结构体名称、结构体参数等内容。该软件能够大大提高STM32和AT32之间代码转换的效率,但是在转换时需要注意内核是否相同,不能盲目转换,且不同代码可能在用户代码的部分有需要调整的内容,需要自己手动调整。转换过程中,会将具体的转换信息进行提示,包括错误信息、转换成功信息等。原创 2024-09-27 20:44:03 · 925 阅读 · 0 评论 -
嵌入式开发常见问题排查
Cortex M内核陷入异常中断时会将几个内核寄存器的值压入栈中,如下图:我们可以在陷入异常中断时将栈上的内核寄存器值写入RAM的一段复位后保留默认值的区域内,执行复位操作后再从RAM将该信息读出并分析,通过PC、LR确认当时执行的函数,通过R0-R3分析当时处理的变量是否异常,通过SP分析是否可能出现栈溢出等。此类问题通常需要结合map文件进行分析,通过map文件观察被篡改变量地址附近的数组,查看对该数组的写入操作是否存在如上图所示不安全的代码,将其修改为安全的代码。通过模拟这些条件,就能成功复现问题。原创 2024-09-21 17:14:37 · 999 阅读 · 0 评论 -
几个常用C代码段分享(一)
我们在不同的单片机软件项目开发过程中难免会遇到一些经常使用的重复性代码,例如:BCD与十六进制的互转、指定字符位置查找、指定位置拼接字符串等。因此本文将提供这几种实现方法,建议收藏,方便读者后续参考。原创 2024-09-19 00:02:57 · 559 阅读 · 0 评论 -
Modbus-RTU之C语言实现
本文针对Modbus-RTU协议的C语言实现进行了核心部分的讲解及例程编写,包括初始化、数据打包、数据解析、CRC校验等部分。移植此代码加入相关处理文件,可根据本文定义参数直接调用本文函数来解决Modbus-RTU协议部分。原创 2024-09-12 00:38:33 · 3053 阅读 · 0 评论 -
一种简易CAN数据分析器的实现(二)【代码实现】
本次例程制作的简要CAN数据分析仪,主要帮助大家,在条件有限的开发环境中,自己通过常见的简单应用电路,即可实现CAN数据的监控和发送。主要功能为:通过电脑上的串口调试助手,监控CAN数据和发送CAN数据。本例程只是实现简单的CAN 标准数据帧的发送和监控,例程功能比较单一,实现也是非常简单,因此根据大家反响,决定后期是否开源全功能的CAN数据分析仪的小项目。原创 2024-09-11 17:02:51 · 1171 阅读 · 0 评论 -
一种简易CAN数据分析器的实现(一)【工程创建+CAN波特率计算工具】
本次例程制作的简要CAN数据分析仪,主要帮助大家,在条件有限的开发环境中,自己通过常见的简单应用电路,即可实现CAN数据的监控和发送。主要功能为:通过电脑上的串口调试助手,监控CAN数据和发送CAN数据。本例程只是实现简单的CAN 标准数据帧的发送和监控,例程功能比较单一,实现也是非常简单,因此根据大家反响,决定后期是否开源全功能的CAN数据分析仪的小项目。原创 2024-09-11 16:49:48 · 1655 阅读 · 0 评论 -
RS-485软件层协议之Modbus-RTU
Modbus-RTU是一种比较简单、可靠的协议,本文梳理了一下标准中一些常用的功能码,并举例介绍了具体使用方法。原创 2024-09-06 01:38:34 · 3021 阅读 · 0 评论 -
一种常用嵌入式开发代码库
嵌入式技术分享原创 2024-09-03 21:08:29 · 617 阅读 · 0 评论 -
VSCode + Git的常规操作(一)【描述详细直白,小白一学就会】
如果你作为项目开发中的一员,在Git上已经创建好了项目仓库,需要项目成员将项目文件上传到项目仓库中,这时该如何操作?本文通过VScode + Git的方式进行文件上传等一系列操作,直接按照下列操作顺序进行操作即可。原创 2024-09-02 19:02:47 · 4380 阅读 · 0 评论 -
VScode 的下载安装及常见插件 + Git的下载和安装
VScode 的下载安装及常见插件 + Git的下载和安装,一文全概括,并包含详细描述。原创 2024-09-02 18:40:31 · 8722 阅读 · 0 评论 -
VSCode+Keil协同开发之Keil Assistant
大家在单片机开发时需要要用到IDE,其中Keil就是很多人的选择,但Keil在编辑器上界面还是有些简单,对于习惯了VSCode的同学来说有点小别扭,下面就给大家介绍一款VSCode插件————Keil Assistant,可以帮助大家解锁更舒适、更效率的开发姿势。原创 2024-08-30 20:08:55 · 6074 阅读 · 3 评论 -
AT开发工具实用教程
上述工具的使用以及 AT32 时钟配置流程、代码解析等详细介绍,均可从雅特力官网获取。本栏目及微信公众号及视频号(ID:掌芯元器)还在分享STM32、GD32、AT32、HC32、Keil、RT-Thread、CANOpen、Modbus…等更多精彩内容,如果想查看更多内容,可以关注本栏目和微信公众号及视频号。原创 2024-08-28 18:31:22 · 1520 阅读 · 0 评论 -
基于ringbuffer的串口接收demo
之前写了一篇文章,实现了一个环形缓冲区,比较详细的分析了环形缓冲区的原理和实现,本文将基于环形缓冲区实现一个串口接收的demo。原创 2024-08-27 21:28:11 · 842 阅读 · 0 评论 -
状态机的简单实现
在编程的世界里,状态机是一种强大的工具,它能够帮助我们有效地管理和控制程序的状态变化。无论是在游戏开发、自动化系统还是复杂的业务逻辑中,状态机都发挥着至关重要的作用。那么我们下面将正式介绍下可以称为编程思维,也可称为编程技巧、技能的状态机,解锁更高效的编程方式。原创 2024-08-25 10:39:06 · 1419 阅读 · 0 评论 -
keil常见问题及解决措施
因为在退出之前进行过单步调试,导致虽然没有设置断点,但是软件认为存在断点导致的,保险起见,每次退出调试之前,点击菜单栏的杀死所有断点选项即可。变量的使用在变量定义之前,在C语言中,编译是从上到下进行的,故而无法找到变量定义,从而报错,因此在编程之时需要注意,不要把程序调用的内容放在定义之前。打开错误提示中出现的文件,将光标放置在文章最后,点击回车即可,可以多点几下。解决:上述问题出现的原因是编译优化太高导致的,我们将keil的优化等级改为default或者最低即可,这样每一个运行的地方都可以打断点。原创 2024-08-22 17:34:48 · 1788 阅读 · 0 评论 -
keil实用技巧一
个人自定义整体配置:!原创 2024-08-16 11:04:02 · 1793 阅读 · 0 评论 -
一种环形缓冲区的分析和实现
本章主要介绍了一种在单片机中常用的环形缓冲区,分析了设计思路和代码实现。原创 2024-08-10 18:09:12 · 1250 阅读 · 2 评论