嵌入式学习
文章平均质量分 85
CAKE_49648532
这个作者很懒,什么都没留下…
展开
-
C语言中,sprintf();函数的妙用(字符串拼接,数字转字符串等)
C语言中sprintf();函数的一些实用技巧在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。sprintf 是个变参函数,定义如下:int sprintf( char *buffer, const char *format [, argument] … );除了前两个参数类型固定外,后面可以接任意转载 2022-03-07 16:14:43 · 9194 阅读 · 0 评论 -
关于STM32等ARM程序Fault中断错误分析与解决办法
HardFault_Handler出现的情况一般有两种:一种是:数组越界一种是:堆栈溢出,程序指针指飞一种是:falsh内存写入错误,错误把写入地址写到了程序存储区,造成Fault错误现象:最近在用Keil对STM32的程序进行仿真时出现下面的现象。1、仿真时,程序有时会跑飞,也就是说程序在执行一会儿就不知道执行到哪里了。2、停止仿真时,程序会停在HardFault_Handler函数里的死循环while(1)中。可能原因:由于定义变量太多,堆栈溢出解决办法:将定义的局部变量尽量定义为全局变转载 2021-11-26 14:45:27 · 2816 阅读 · 0 评论 -
STM32的学习分享之——寄存器的映射
STM32的学习分享之——寄存器的映射我们知道,存储器本身没有地址,给存储器分配地址的过程叫存储器映射,那什么叫寄存器映射?寄存器到底是什么?在存储器Block2 这块区域,设计的是片上外设,它们以四个字节为一个单元,共32bit,每一个单元对应不同的功能,当我们控制这些单元时就可以驱动外设工作。我们可以找到每个单元的起始地址,然后通过C 语言指针的操作方式来访问这些单元,如果每次都是通过这种地址的方式来访问,不仅不好记忆还容易出错,这时我们可以根据每个单元功能的不同,以功能为名给这个内存单元取一个别名原创 2021-07-21 10:10:13 · 248 阅读 · 0 评论 -
STM32F10X、HK32F030单片机的Flash学习
STM32 | 使用STM32内部Flash额外的空间来存储数据(Flash模仿EEPROM)单片机内部是NORflash,擦除只能整页擦除,当然写可以按“字”写。这款芯片flash一共32k,分成32页,每页1k的大小;程序编译完一共要占用11k的空间,还有后面的21kflash是空闲的。STM32 芯片内部的 FLASH 存储器,主要用于存储我们代码。如果内部FLASH存储完我们的代码还有剩余的空间,那么这些剩余的空间我们就可以利用起来,存储一些需要掉电保存的数据。本文以STM32103ZET6为转载 2021-05-08 15:46:48 · 1598 阅读 · 0 评论 -
STM32的LCD-TFT显示中文(2.4寸)
LCD-TFT显示中文字体,调用中文字库(方法)下面展示一些 内联代码片。/*************************//在指定位置显示一个汉字字符//x:0~234//y:0~308//num:要显示的字符//size:字体大小 32//mode:叠加方式(1)还是非叠加方式(0) :叠加方式:在图片上显示字符,非叠加方式:普通显示*************************/void LCD_ShowhanziChar(u16 x,u16 y,u8 num,u8 si原创 2020-12-07 21:26:32 · 4409 阅读 · 6 评论 -
关于ADS1292测心率心电的一些学习总结
什么是心电信号,采集原理是什么?在医疗领域常常使用的心电图仪并不是很复杂的仪器。其原理跟示波器非常相似,只不过,心电图仪测量的是低频小信号。心电信号(也叫ECG信号)的幅值一般在0.05mV4mV之间,要求分辨力至少为0.1mV,其频率在0.05100Hz之间,主要的频率成份集中在5~20Hz之间。一般的示波器垂直刻度最小为10mV/div,分辨力约为0.4mV。其次,把探头接在左右手,在示波器上只会观察到50Hz的工频干扰。所以,示波器并不适合测量心电信号。制作心电图仪,可以使用多级放大,再配合低原创 2020-10-19 23:27:17 · 11567 阅读 · 0 评论 -
MDK5编译错误问题:error: L6235E: More than one section matches selector - cannot all be FIRST/LAST.
将CAN程序由V2.0.1的库升级为V3.3.0的时候,编译出现错误:.\Obj\CAN_BUS_TEST.sct(7): error: L6235E: More than one section matches selector - cannot all be FIRST/LAST.原因:项目中同时包含以下启动文件,startup_stm32f10x_hd.s startup_stm32f10x_md.s startup_stm32f10x_ld.s… 应该针对不同的C原创 2020-08-28 11:51:36 · 1409 阅读 · 0 评论 -
如何学好linux,linux的学习建议
学习linux最关键两点:1、嵌入式是什么? 2、嵌入式需要哪些知识? 知道了这两点,好办!我就开始规划学习路线。计算机的基本理论不能丢,于是重点看组成原理,数据机构,操作系统、c++。同时论坛上了解到,实时操作系统 ucos是一个很好的嵌入式操作系统,对初学者很好。于是我就买了一本书,但是代码在电脑里调不通,网上也有很多相同的问题,我就看书,分析代码,一遍不行就两遍,三遍,这样才看了入了门,才知道什么是进程。原来看操作系统书时,根本就不知道进程是个什么东西。 在这段时间掌握的东西不多,但是,对原创 2020-08-12 15:43:18 · 315 阅读 · 0 评论