嵌入式c
eliote_C
没事的时候总结一下,方便以后查看
展开
-
stm32f105同时使用can1和can2问题
stm32f105 can2驱动无法接收数据问题原创 2023-02-23 20:36:30 · 1817 阅读 · 0 评论 -
CmBackTrace的移植与使用(转自https://zhuanlan.zhihu.com/p/366558691)
CmBacktrace(Cortex Microcontroller Backtrace)是一款针对 ARM Cortex-M 系列 MCU 的错误代码自动追踪、定位,错误原因自动分析的开源库。主要特性如下:支持的错误包括: 断言(assert) 故障(Hard Fault, Memory Management Fault, Bus Fault, Usage Fault, Debug Fault) 故障原因 自动诊断 :可在故障发生时,自动分析出故障的原因,定位发生故障的代码位置,而无...转载 2021-12-02 17:03:07 · 754 阅读 · 0 评论 -
关于 Error: identifier “HAL_StatusTypeDef“ is undefined
用stm32的hal库编辑代码时出现这个bug,右键可以定位到相关头文件,但系统依旧报错,其实主要还是头文件的问题。1.需要检查头文件中关于主程序所用到的部分是否已经使能,尤其是 “stm32f1xx_hal_con.h”和"stm32f1xx_hal.h"。2.编译器报错的地方并不准确,比如报头文件 stm32f1xx_rcc.h 中HAL_StatusTypeDef未定义,需要仔细查看报错是在编译那个.C文件的时候出现的。基本上都是自己编写的.c文件编译时出错才会报这种错误,需要注意需要统一 i原创 2021-06-24 10:32:35 · 1273 阅读 · 0 评论 -
嵌入式关于字对齐方面的处理及实例
对于32位的系统来说,是以4个字节的方式来进行存储数据,但对于存储的多数据中混有小于4字节的数据来说,则需要特殊处理。若想实现按照实际数据顺序进行存储,处理方法如下:1.处理定义的单个结构体中混有多种数据类型加“__packed”,例子:typedef __packed struct{ uint8 a; uint8 b[2]; uint16c;...原创 2019-11-29 18:11:16 · 307 阅读 · 0 评论 -
(转自https://blog.csdn.net/qq_32666555/article/details/79823323)10种软件滤波方法
软件滤波在嵌入式的数据采集和处理中有着很重要的作用,这10种方法各有优劣,根据自己的需要选择。同时提供了C语言的参考代码,希望对各位能有帮助。(以下10种软件滤波方法转自“匠人的百宝箱”,程序由网友OurWay提供,表示感谢。)/*------------------------ 自己新增加采样状态反馈点(通断状态)的就采用的以下的“消抖滤波法”,以下是做过的其中一个工程的采集多个IO口状...转载 2019-01-29 13:23:08 · 382 阅读 · 0 评论 -
(转)#Pragma Pack(n)与内存分配 pragma pack(push,1)与#pragma pack(1)的区别
转自:http://blog.csdn.net/mylinx/article/details/7007309 #pragma pack(n)解释一:每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。程序员可以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数,其中的n就是你要指定的“对齐系数”。 规则: 1、数据...转载 2019-01-24 15:41:50 · 639 阅读 · 0 评论 -
队列的图文介绍及C/C++的实现实例(转自http://www.cnblogs.com/skywang12345/p/3562279.html)
队列的介绍队列(Queue),是一种线性存储结构。它有以下几个特点:(01) 队列中数据是按照"先进先出(FIFO, First-In-First-Out)"方式进出队列的。(02) 队列只允许在"队首"进行删除操作,而在"队尾"进行插入操作。队列通常包括的两种操作:入队列 和 出队列。 1. 队列的示意图队列中有10,20,30共3个数据。 2. 出队列...转载 2018-08-01 11:26:26 · 607 阅读 · 0 评论 -
循环队列的原理及例子
对于嵌入式产品来说,会经常的进行数据收发操作。当因为短时间内有多帧数据而处理不过来时,可将数据暂存在缓冲区来做处理。队列和链表是作为缓冲区比较好的方式,链表可指定相应的位置进行增删查改等操作,对于不经常插入和删除数据的操作比较有优势;而队列对于频繁进行FIFO的操作比较有优势。 理解循环队列 何谓循环队列?首先我们要说明的是循环队列仍然是基于数组实现的。但是为了形象...原创 2018-08-01 11:05:13 · 9764 阅读 · 2 评论 -
cJSON使用以及在stm32中的应用(转自https://blog.csdn.net/jipengwang/article/details/72851302)
1. cJSON使用最近一段时间在整理自己进入研究生阶段后学习过程中的一些内容,之前在进行相关代码调试过程中,也的确耗费了比较大的精力去搜寻资料,然后整合代码到自己所需要的系统中,如在stm32中使用cJSON格式,由于stm32的资源较小,而JSON格式用C语言实现又比较耗费资源,所以在调试的过程中,要及时释放内存空间。下面简单总结一下在stm32中使用cJSON的经验,时间比较久了,难免有所疏...转载 2018-07-01 20:58:04 · 1961 阅读 · 0 评论 -
stm32制作bootloader时遇到的问题
遇到的问题和解决方法(待验证):1.在下载的例程中做实验时有时出现BootLoader无法进入到应用程序中,将跳转函数前的延时加长至下图,暂时未出现问题,待验证。2.将例程中的BootLoader程序的所占内存大小改变(0x10000以外的值)时无法跳转到应用程序,暂时固定为。3.将配置Linker项修改为下图4.在用jlink下载不进去时(一些内...原创 2018-06-07 19:16:40 · 1660 阅读 · 0 评论 -
keil软件学习相关教程
“工欲善其事,必先利其器”。对于经常要在keil软件上编程的猿猿来说掌握软件的使用方法,对今后的开发会省很多时间。下面是在网上找到的一些资源: Keil(MDK-ARM)介绍、下载、安装与注册: http://blog.csdn.net/ybhuangfugui/article/details/51501781 Keil系列教程: http://blog.原创 2018-01-16 10:29:44 · 665 阅读 · 0 评论 -
嵌入式c程序易错点(转自http://blog.csdn.net/zhzht19861011/article/details/45508029)
今天第一次在网上发表博客,虽然是转载的别人的文章,但还是有点小激动。转载的这篇文章里提到的问题很多都自己亲自踩过,有个别还踩过多次(感觉自己有点傻),也许是亲生经历的原因,看完后果断的转了,以后可以经常回顾一下,在前人的指引下还是可以少掉不少的坑。里面还有一些规范向我这样的初学者养成个好的编码习惯的一些经验建议,感觉很有用。下面是大神原文总结: 前言:这是一年前我为公司内部转载 2017-05-04 10:04:01 · 1519 阅读 · 0 评论