嵌入式单片机项目开发
文章平均质量分 75
我将会记录业余开发单片机的一些项目的开发经过,将出现的问题做总结,积累自己的经验同时也帮助别人更好的去学习单片机
独处东汉
这个作者很懒,什么都没留下…
展开
-
[MDK] 介绍STM32使用C和C++混合编程的方法
搞单片机编程大多数还是使用MDK编程,自己对MDK这个软件也比较熟悉,在网络寻找资料时,发现有一些大佬会用c++来写单片机程序,很是高大上,于是笔者也想研究一下,于是有了这篇文章,使用stm32的内部flash进行编程,在芯片内部flash的最后一个page上进行存储一些数据。原创 2024-05-08 17:00:42 · 627 阅读 · 0 评论 -
基于STM32G030F6部分芯片烧录程序后无法识别也不运行之救砖笔记
基于STM32G030F6部分芯片烧录程序后无法识别也不运行之救砖笔记原创 2024-04-11 15:45:49 · 555 阅读 · 1 评论 -
基于keil下的多文件夹打包生成LIB库的操作步骤
在一些情况中,刚踏入新公司接触到新工程时,公司的一些老手不太方面展示源码,会在工程中添加lib的文件,这些打包的lib库文件中,或者是针对性优化的代码,或者是屎山代码,或者是量产打包的代码,或者是基于保密之类的留一手,或者是祖传代码,或者是别的什么缘由,总之在给定的工程中是能用的,就是看不到对应的源码,这个lib库怎么来的,今天就以一个工程进行展示。原创 2024-04-02 20:28:19 · 509 阅读 · 0 评论 -
基于单片机bootloader的随笔
一直觉得做产品开发需要得考虑一些安全策略,一般的设计固件时会进行bootloader设计,而设计一个高效且安全的定制Bootloader需要考虑以下几个关键因素:首先确保Bootloader自身的安全性,例如通过以下措施:加密:使用加密算法确保固件在传输和烧写过程中的安全性。Bootloader需要能够解密接收到的固件。数字签名:通过签名验证确保烧录的固件是经过授权的。Bootloader应验证固件签名的合法性后才能烧录。锁定Bootloader:在生产烧录完成后,可以锁定Bootloader以防止未授权的原创 2024-03-29 13:52:08 · 676 阅读 · 0 评论 -
关于使用vscode搭建c/c++编程环境
一直觉得vscode是生产强有力的生产工具,基于此,做一篇学习笔记进行记录。原创 2024-03-28 17:11:46 · 715 阅读 · 0 评论 -
关于使用jlink弹窗出现The connected J-Link is defective,Proper operation cannot be guaranteed......
问题出现的原因是keil5的J_Link驱动是最新版本的。也就是和keil的驱动不配套。大家的J_Link大多数都是某宝买的,基本都是山寨货,所以更新J_Link固件到最新版本据网上说大概率会废掉你的J_Link,所以我们用降低keil的J_Link驱动版本来解决这个问题。双击运行,如果之前成功替换了驱动文件,会在对话框中显示一个新的DLL驱动文件,这个文件的版本就是我们替换到keil的驱动文件版本。J_Link在使用之前都安装过驱动,我们只需要用这个驱动文件夹下的文件替换keil文件夹下的文件就行了。原创 2024-03-23 14:49:02 · 766 阅读 · 0 评论 -
Nwatch在stm32上的移植
NWatch是一个很漂亮的、基于STM32的开源手表项目,我这次学习是为了配合使用FreeRTOS而进行学习的。官方链接为:作者博客:https://blog.zakkemble.net/diy-digital-wristwatch/原创 2024-03-10 20:09:07 · 631 阅读 · 0 评论 -
markdown绘制流程图相关代码片段记录
上一个代码示例中,B{“冰箱小不小?”} 这里的描述文字加了引号,是因为其中包含特殊字符(问号),用引号包裹防止出错为节点取名为 A B C 不太合适,如果节点很多时往往容易混淆,不方便后续使用和阅读(编程时命名的重要性)。建议起有意义的名字,除上述带箭头线段 --> 外,还有带箭头虚线线段 -.->、 带箭头加粗线段 ==>、不带箭头线段 —A B C D 这些字符是为节点取的名字,这个名字可以在之后反复利用(在编程里这相当于定义变量)上述 -->是带箭头线段,–>|不小| 是加了描述文字的带箭头线段。原创 2024-02-17 16:59:31 · 966 阅读 · 0 评论 -
基于STM32的ADC采样及各式滤波实现(HAL库,含VOFA+教程)
VOFA+是一款直观、灵活、强大的插件驱动高自由度的上位机,在与电气打交道的领域里,如自动化、嵌入式、物联网、机器人等,都能看到VOFA+的身影。同时滤波算法各式各样,原理也各不相同,希望读者朋友在实际的工程项目中,不要盲目的追求各种牛逼的滤波算法,其实适合该工程的滤波就是好滤波。(1)测量范围:测量范围对于 ADC 来说就好比尺子的量程,ADC 测量范围决定了你外接的设备其信号输出电压范围,不能超过 ADC 的测量范围(比如,STM32系列的 ADC 正常就不能超过3.3V)。转载 2023-12-04 17:50:49 · 2106 阅读 · 0 评论 -
STM32 ADC采样不准怎么办
首先,找到芯片的datasheet,是所使用的那款芯片的数据手册,因为同一系列的不同芯片,可能存在区别。VREFINT_DATA:ADC读取VREFINT(内部参考电压通道ch17)得到的值,每次采样序列,将ch17一并采集,用来后续的AD值补偿计算。VREFINT_CAL:使用前述的读取语句data1 = VREF_CAL;VREFINT_CAL:芯片出厂时固化在存储器中的。VREFINT_DATA:前述,内部参考电压通道(ch17)读出的值;ADC_DATAx:你需要测量的通道,使用ADC读出;转载 2023-12-01 15:32:56 · 1067 阅读 · 0 评论 -
关于使用stm32下载不进程序的各种奇葩记录
还有一种情况是,程序中软件忘记配置SWD接口调试了,导致识别不到芯片,那么需要解决办法就需要一点手速了,用镊子或者跳线把STM32的NRST引脚拉低,并一直使STM32处于复位状态,然后单击KEIL的DOWNLOAD按钮,因为这时候MCU一直处于复位,所以当我们DOWNLOAD下载代码时,立刻松手让MCU的NRST引脚拉高,这就可以成功下载了,如果松手太慢则会下载失败!(3)使用4线SWD接口连接,但是之前下载的程序却没有配置SWD接口,没有连接仿真器和MCU的RESET信号就无法再下载;原创 2023-11-21 18:03:29 · 658 阅读 · 0 评论 -
通信协议解析神器:函数指针
每增加一个功能,则多编写一个功能函数,除此之外,还需要在协议解析处改动,需要改很多地方,非常的不方便.以下介绍一下利用函数指针,实现回调函数形式解析协议。这两个文件只是这种方法的模板,只要你愿你可以为你的所有模块功能都按照用例那样配置属于每个模块的独有回调群。由于以上代码是用world手撸的(公司外网限制,没办法),如有错误还请留言,如有更好的改良方案,欢迎留言讨论!用户只需要增加协议的cmd、用户函数、将两个参数注册进注册表中进行邦定,当相应的协议到来时即可调用相应的用户函数,极大拓展了程序的可扩展性。转载 2023-11-18 13:48:14 · 30 阅读 · 0 评论 -
unity在stm32上的使用
在工程中,新建Unity文件夹,将源码添加进根文件,然后添加进工程,并设置对应的编译路径,其中test_unity_conde.c是我自己新建的内容。基本的配置如下:开启swd调试,开启外部时钟,开启串口。编译代码,报错,新建一个自己的test_unity_conde.c源码,添加报错的这两个函数即可编译通过。先决条件:装有编译和集成的开发环境,比如:Keil uVision5。源码里面结构,接下来准备一个stm32的基础工程,把相关代码移植进去。编译工程:下载进工程,可以在串口助手界面观察到相关日志。原创 2023-08-22 21:16:06 · 502 阅读 · 1 评论 -
基于stm32的keil调试
对于学习一个新功能时,没能实现自己的实验现象时,我们可能会感到灰心丧气。不过,不要失望,这是一个学习新东西的正常过程。在嵌入式系统开发中,调试是一个非常重要的技能,它不仅涉及到理解代码,还需要理解硬件的工作原理。通过这个实验,应该能够简单理解STM32的调试过程,并学会如何使用调试工具来解决问题。记住,调试是一个学习的过程,只有不断地尝试和失败,才能获得成功。希望给初学者一些启发,后续碰到有类似的问题时,可以自己通过仿真debug的方式来追踪代码,一点点的积累自己的工程经验。原创 2023-08-18 00:09:18 · 793 阅读 · 1 评论 -
keil在线调试STM32,点三次运行才能跑到main的问题解决
keil在线调试STM32,点三次运行才能跑到main的问题解决本文目标:解决keil调试问题按照本文的描述,应该可以跑通实验并举一反三。先决条件:装有编译和集成的开发环境,比如:Keil uVision5、STM32CubeMX使用外设:USART、GPIO。原创 2023-08-14 15:48:29 · 790 阅读 · 1 评论 -
Event Recoder调试组件在stm32上的使用
嵌入式的Event Recoder调试组件是一种可以在MDK开发环境下使用的高级调试工具,它可以记录软件运行的一些标志信息,并以图形化的形式显示出来。它可以帮助你了解和分析内部操作,支持Keil RTX操作系统调试以及MDK自带的中间件的调试。它还可以测量代码运行的时间和功耗。它不需要占用芯片的外设资源,也不会影响代码的执行速度。Event Recoder调试组件是MDK开发环境的一部分,官网是https://www.keil.com/。原创 2023-04-29 12:37:38 · 370 阅读 · 0 评论