- 博客(16)
- 资源 (12)
- 收藏
- 关注
转载 C语言中,sprintf();函数的妙用(字符串拼接,数字转字符串等)
C语言中sprintf();函数的一些实用技巧在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。sprintf 是个变参函数,定义如下:int sprintf( char *buffer, const char *format [, argument] … );除了前两个参数类型固定外,后面可以接任意
2022-03-07 16:14:43 10851
转载 关于STM32等ARM程序Fault中断错误分析与解决办法
HardFault_Handler出现的情况一般有两种:一种是:数组越界一种是:堆栈溢出,程序指针指飞一种是:falsh内存写入错误,错误把写入地址写到了程序存储区,造成Fault错误现象:最近在用Keil对STM32的程序进行仿真时出现下面的现象。1、仿真时,程序有时会跑飞,也就是说程序在执行一会儿就不知道执行到哪里了。2、停止仿真时,程序会停在HardFault_Handler函数里的死循环while(1)中。可能原因:由于定义变量太多,堆栈溢出解决办法:将定义的局部变量尽量定义为全局变
2021-11-26 14:45:27 2954
原创 STM32的学习分享之——寄存器的映射
STM32的学习分享之——寄存器的映射我们知道,存储器本身没有地址,给存储器分配地址的过程叫存储器映射,那什么叫寄存器映射?寄存器到底是什么?在存储器Block2 这块区域,设计的是片上外设,它们以四个字节为一个单元,共32bit,每一个单元对应不同的功能,当我们控制这些单元时就可以驱动外设工作。我们可以找到每个单元的起始地址,然后通过C 语言指针的操作方式来访问这些单元,如果每次都是通过这种地址的方式来访问,不仅不好记忆还容易出错,这时我们可以根据每个单元功能的不同,以功能为名给这个内存单元取一个别名
2021-07-21 10:10:13 285
转载 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 1691
转载 关于C语言指针学习
C语言–指针详解这段时间在看 Linux 内核,深觉 C 语言功底不扎实,很多代码都看不太懂,深入学习巩固 C 语言的知识很有必要。先从指针开始。一、什么是指针C语言里,变量存放在内存中,而内存其实就是一组有序字节组成的数组,每个字节有唯一的内存地址。CPU 通过内存寻址对存储在内存中的某个指定数据对象的地址进行定位。这里,数据对象是指存储在内存中的一个指定数据类型的数值或字符串,它们都有一个自己的地址,而指针便是保存这个地址的变量。也就是说:指针是一种保存变量地址的变量。前面已经提到内存其实就是一
2021-03-08 13:53:43 104
原创 一般步进电机一圈脉冲数
根据步进电机电机步距角,一般为0.9或1.8;如步角距为1.8度的话,电机转一周为200个脉冲(360/1.8)。 如果步进电机带细分的话,每个脉冲前进的度数就是步距角除以细分数,如16细分,电机转一周需要(360/0.1125)=3200个脉冲数;...
2021-01-29 10:43:58 10268
原创 关于C语言中,while循环的结束
//while循环是死循环int j=0;while (j<100){if (j== 88){continue;}j++;//要做的逻辑}看到有个人这样写了一篇关于while循环中使用continue,这样就是死循环,对,是的确实是个死循环,但是不代表不能用,你可以这样把改变判断条件在continue的之前调用,改变,就不会成死循环int j=0;while (j<100){j++;if (j==88){continue;}//要做的逻辑}仅此而已.
2021-01-21 13:45:54 6373
转载 c语言中static关键字用法详叙
概述static关键字在c语言中比较常用,使用恰当能够大大提高程序的模块化特性,有利于扩展和维护。但是对于c语言初学者,static由于使用灵活,并不容易掌握。本文就static在c语言中的应用进行总结,供参考使用。错漏之处,请不吝指正。最后一节加入了c++面向对象中static的使用特性,当作拓展阅读。在程序中使用static变量1. 局部变量普通局部变量是再熟悉不过的变量了,在任何一个函数内部定义的变量(不加static修饰符)都属于这个范畴。编译器一般不对普通局部变量进行初始化,也就是说
2021-01-21 09:36:57 210
转载 marlin的源码分析
marlin源码分析文章转载:http://www.360doc.com/content/18/0716/00/52973095_770673230.shtml一、前言Delta机型是一种并联式运动结构的3d打印机,delta机型实际上是分为两大类,一种是工业上用的并联式机器人;另外一种是rostock 的运动结构。这两种结构做出来的打印机给人的感觉都是非常cool的。所以大伙都偏好这类型的打印机,目前主流的固件marlin 和repetier都支持rostock结构的3d打印机。这里鸭哥就谈谈自己对
2021-01-11 15:14:28 2252 1
原创 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 4624 6
原创 关于ADS1292测心率心电的一些学习总结
什么是心电信号,采集原理是什么?在医疗领域常常使用的心电图仪并不是很复杂的仪器。其原理跟示波器非常相似,只不过,心电图仪测量的是低频小信号。心电信号(也叫ECG信号)的幅值一般在0.05mV4mV之间,要求分辨力至少为0.1mV,其频率在0.05100Hz之间,主要的频率成份集中在5~20Hz之间。一般的示波器垂直刻度最小为10mV/div,分辨力约为0.4mV。其次,把探头接在左右手,在示波器上只会观察到50Hz的工频干扰。所以,示波器并不适合测量心电信号。制作心电图仪,可以使用多级放大,再配合低
2020-10-19 23:27:17 12295
原创 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 1473
原创 个人关于蓝桥杯15单片机18B20的学习理解
18B20驱动代码步骤:18B20驱动代码步骤:sbit DQ=P1^4;//数据输入输出脚 单总线接口#include"intrins.h"1、初始化2、温度读取3、读取18B20数据4、写18B20数据1、18B20初始化:/18B20初始化*/void dsinit(){DQ=0; //总线拉低初始化Delay500us();DQ=1; //拉高Delay500us();}时序图:2、写18B20数据:void write(uchar dat){uch
2020-08-12 15:55:24 557
原创 如何学好linux,linux的学习建议
学习linux最关键两点:1、嵌入式是什么? 2、嵌入式需要哪些知识? 知道了这两点,好办!我就开始规划学习路线。计算机的基本理论不能丢,于是重点看组成原理,数据机构,操作系统、c++。同时论坛上了解到,实时操作系统 ucos是一个很好的嵌入式操作系统,对初学者很好。于是我就买了一本书,但是代码在电脑里调不通,网上也有很多相同的问题,我就看书,分析代码,一遍不行就两遍,三遍,这样才看了入了门,才知道什么是进程。原来看操作系统书时,根本就不知道进程是个什么东西。 在这段时间掌握的东西不多,但是,对
2020-08-12 15:43:18 344
原创 关于基于stm32的0.96寸oled显示屏的学习理解心得。
关于基于stm32的0.96寸oled显示屏的学习理解心得。oled粗了解如何理解OLED分辨率?这里0.96寸OLED分辨率是12864;即OLED显示是128行64列;但是由于OLED不能一次控制一个点阵,只能控制8个点阵;而且是垂直方向扫描控制;如下图;因此垂直方向坐标可选为0-7(8*8=64);水平方向可选坐标0~127.什么是OLED?OLED,即有机发光二极管( Organic Light Emitting Diode)。 OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄
2020-08-12 15:32:14 6256 4
ST-LINK V2 基于windows10.zip
2021-07-21
STM32内部FLASH模拟EEProm.zip
2021-05-08
5Kg、10Kg称重传感器hx712重量采集
2021-04-28
STM32F103ZET6DHT22 程序串口、OLED显示.zip
2020-11-16
MPU6050模块 六轴 加速度 传感器 角度 提供STM32源码.zip
2020-11-03
基于STM32F103+ADS1292的心率实时显示(串口助手),心电图波形
2020-10-12
基于stm32f103zet6的0.96寸的OLED显示屏源程序(IIC)
2020-08-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人