- 博客(39)
- 收藏
- 关注
原创 2021-03-16
要让一个变量在程序运行期间始终存在可以用全局变量和局部static变量全局变量在完成一次完整的动作之后要全部清零或者在使用完之后要清零以便下次使用
2021-03-16 10:42:24
162
原创 static修饰全局局部变量函数
1.static修饰全局变量特点如下:1)存储区:静态存储区静态存储区在整个程序运行期间都存在;2)作用域:全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。非静态全局 变量的作用域是整个源程序(多个源文件可以共同使用);好处:1)不会被其他文件所访问,修改;2)其他文件中可以使用相同名字的变量,不会发生冲突。2.static修饰局部变量在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。特点如下:1)存储区:有栈变为静态存储区rw da
2021-01-29 10:34:49
664
原创 枚举变量的定义赋值使用
定义:typedef enum {A1,A2,A3,A4 = 10,A_END}A;如果A1赋值为5,则下列依次递增1,即A2等于6,A3等于7;由于A4赋值为10,所以A_END等于11如果A1不赋值,A1默认为0,下列依次递增1赋值:A=A1使用:if(A==A1)printf……...
2021-01-14 10:52:40
1181
原创 32位系统4字节对齐效率最高
地址/4=032位系统4字节对齐效率最高。执行速度最快。举例:Struct foo{short s;int n;};Struct foo bar;bar的地址为0x12345670要读取n的值不按4字节对齐要执行两次读取操作0x12345670s1s2n1n20x12345674n3n4...
2021-01-05 17:22:39
711
原创 接上条博客
之前对各种存储器一直不太清楚,今天总结一下。存储器分为两大类:ram和rom。ram就不讲了,今天主要讨论rom。rom最初不能编程,出厂什么内容就永远什么内容,不灵活。后来出现了prom,可以自己写入一次,要是写错了,只能换一片,自认倒霉。人类文明不断进步,终于出现了可多次擦除写入的EPROM,每次擦除要把芯片拿到紫外线上照一下,想一下你往单片机上下了一个程序之后发现有个地方需要加一句话,为此你要把单片机放紫外灯下照半小时,然后才能再下一次,这么折腾一天也改不了几次。历史的车轮不断前进,伟大的EEP
2021-01-05 12:03:07
100
原创 Flash和eeprom
FLASH和EEPROM的最大区别是FLASH按扇区操作,EEPROM则按字节操作,二者寻址方法不同,存储单元的结构也不同,FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因而适合用作程序存储器,EEPROM则更多的用作非易失的数据存储器。当然用FLASH做数据存储器也行,但操作比EEPROM麻烦的多,所以更“人性化”的MCU设计会集成FLASH和EEPROM两种非易失性存储器,而廉价型设计往往只有FLASH,早期可电擦写型MCU则都是EEPRM结构,现在已基本上停产了。.
2021-01-05 12:02:05
180
原创 C语言中static修饰全局或局部变量
一、static修饰全局变量:当一个进程的全局变量被声明为static之后,它的中文名叫静态全局变量。静态全局变量和其他的全局变量的存储地点并没有区别,都是在.data段(已初始化)或者.bss段(未初始化)内,但是它只在定义它的源文件内有效,其他源文件无法访问它。根据这个原理,我们可以在多个文件中定义相同名字的全局变量而不影响,可以重名。二、static修饰局部变量:static局部变量中文名叫静态局部变量。 1)位置:静态局部变量被编译器放在全局存储区.data(注意:不在.bss段
2021-01-05 11:14:17
4468
原创 2020-12-23
一、全局变量和局部变量1、局部变量指在函数内部定义的变量 作用域为定义局部变量的函数 也就是说他只能在定义他的函数中使用最值得注意的是 只有在程序执行到定义他的模块时才能生成,一旦执行退出该模块则起变量失效。2、全局变量在程序执行的过程中一直有效 。不会随一个模块的退出而失效...
2020-12-23 17:23:27
96
原创 stm32l0低功耗奇葩芯片
听嵌入式家人说带4的芯片一大堆问题。果然是这样哈。一开始就碰到一个问题。用的hal库。参考电压pb0pb1输出不正常。刚开始配的时候还时有时无。之后就一直出不来了。哎。好在硬件有先见之明。输出不就直接把电阻移到另一个地方就有了需要的电压。这个芯片太蠢了。一个低功耗的串口两个引脚隔得老远。好在adc能用。最后就来到了头疼的iic了。听网上说一大堆硬件iic不好用。那就先用模拟的。可是这个芯片是个低功耗芯片。没有hse。内部最大时钟32m.他妈的。iic调半天没出来。最后用了hal库。且看调得出来不。不行我就要
2020-12-18 08:19:56
574
原创 纹波的处理
突然想起一个在学校做过的开关电源项目纹波的处理。要求10mv.怎么办?网上查一下。加lc滤波呗。一级不行加两级。成功将纹波降到10mv一下。
2020-12-18 08:00:16
733
原创 接上
打印乱码怎么办?配置寄存器,比如pwm要输出10hz,72m的主频必须变为9m,这样不就可以计算出寄存器的值了吗?可是哪有这么好的事情,还是乱码。怎么办?有问题是需要解决的。那么为了能够打印输出。我不用定时器输出1hz的pwm了。改用延时翻转io来得到电机的驱动。首先我用systick实现延时。发现卡住了。不行就用while循环实现。发现这么做都是不行的。最后想到哎呀。用两个单片机一个输出pwm,一个采集转速脉冲打印。问题解决。当然了这样的问题或许也可以用类似于avr单片机来解决。因为这个单片机各个模块之间
2020-12-18 07:42:56
157
原创 2020-12-18
最近用stm32输出pwm 驱动电机,并采集电机输出的脉冲信号来计算电机转速,pwm的频率太低比如1hz不好采集,,因为还要打印输出转速
2020-12-18 07:04:28
228
1
原创 定时器pwm 输出与一段脉冲时间计算采集
最近用stm32输出pwm 驱动电机,并采集电机输出的脉冲信号来计算电机转速,pwm的频率太低比如1hz不好采集
2020-12-18 07:02:49
569
1
转载 STM32中模块时钟
STM32中各个模块都有自己的时钟,当使用相应的模块时首先记得把此模块时钟开启本次学习使用标准固件库3.3.0好了,看明白上图咱就开始吧:void RCC_Configuration(void){ErrorStatus HSEStartUpStatus;//SystemInit(); //完全可以使用此函数配置,但是为了学习咱先不用RCC_DeInit();
2020-12-04 09:39:17
692
原创 stm32flash存储掉电不失数据
先页擦除再写入写入范围:0x08000000+程序大小<写入地址+写入字节〈flash大小程序大小: program size:code:1032rodata:336rwdata:12zidata:1836code 大小即为程序大小
2020-12-02 11:46:49
2235
原创 无刷有刷电机区别
一、调速方式的区别实际上两种电机的控制都是调压,只是由于无刷直流采用了电子换向,所以要有数字控制才可以实现了,而有刷直流是通过碳刷换向的,利用可控硅等传统模拟电路都可以控制,比较简单。1、有刷马达调速过程是调整马达供电电源电压的高低。调整后的电压电流通过整流子及电刷地转换,改变电极产生的磁场强弱,达到改变转速的目的。这一过程被称之为变压调速。2、无刷马达调速过程是马达的供电电源的电压不变,改变电调的控制信号,通过微处理器再改变大功率MOS管的开关速率,来实现转速的改变。这一过程被称之为变频调速。.
2020-11-24 16:55:57
703
原创 有刷无刷电机区别
1、有刷电机 电机工作时,线圈和换向器旋转,磁钢和碳刷不转,线圈电流方向的交替变化是随电机转动的换相器和电刷来完成的。在电动车行业有刷电机分高速有刷电机和低速有刷电机。有刷电机和无刷电机有很多区别,从名字上可以看出有刷电机有碳刷,无刷电机没有碳刷。 有刷电机有定子和转子两大部分组成,定子上有磁极(绕组式或永磁式),转子有绕组,通电后,转子上也形成磁场(磁极),定子和转子的磁极之间有一个夹角,在定转子磁场(N极和S极之间)的相互吸引下,使电机旋转。改变电刷的位置,就可以改变定转子磁极夹角(假设以定子的
2020-11-24 16:46:43
513
原创 字
字(Word):在ARM体系结构中,字的长度为32位,而在8位/16位处理器体系结构中,字的长度一般为16位。半字(Half-Word):在ARM体系结构中,半字的长度为16位,与8位/16位处理器体系结构中字的长度一致。字节(Byte):在ARM体系结构和8位/16位处理器体系结构中,字节的长度均为8位。ARM 采用的是32位架构.ARM 约定:Byte : 8 bitsHalfword :16 bits (2 byte)Word : 32 bits (4 byte)...
2020-11-24 14:05:25
248
原创 今天换芯片时又忘了一个定义,出错: Error: L6218E: Undefined symbol assert_param (referred from misc.o).
今天换芯片时又忘了一个定义,出错:Error: L6218E: Undefined symbol assert_param (referred from misc.o).之所以不记成 Error: L6218E: Undefined symbol assert_param (referred from xxx.o). 而要把misc亮明出来,是我第一时间感觉到这个错误肯定和库函数整体有关,肯定不是一个文件的问题;通过翻译好理解:未定义断言符号;但是直接在misc.c/.h里加断言,肯定在改正后还会继续
2020-11-20 10:06:03
1822
原创 error67
使用KEIL 5发现用keil 5 打开一些比较早的工程时,会出现大量 error: #67: expected a “}” 错误:… Keil\STM32Fxx_DFP\2.2.0\Device\Include\stm32f10x.h(303): error: #67: expected a “}”去除preprocessor symbols 中的定义
2020-11-20 09:59:33
396
原创 error: #268: declaration may not appear after executablestatemen
使用c99模式
2020-11-10 17:06:58
1131
原创 ln,lg
在C语言中定义的函数和数学上定义的函数有所区别:C语言中只定义的两个函数:(1)y=log(double x)(2)y=log10(double x)第(1)个代表数学式中的ln,第(2)个代表数学式中的 lg;而数学上要求loga(b) (a不为e和10),可用换底公式表示为log(b)/log(a)(或者 log10(b)/log10(a))。注意一点的是要包含头文件math.h...
2020-11-09 13:13:48
424
原创 float和double的区别
1.C中float和double的区别float:单精度类型,最多可以精确到小数点为7位,占用内存为4字节,占用内存的消耗速度为double的一半double:双精度类型,最多可以精确到小数点为16位,占用内存为8字节,占用内存的消耗速度为float的两倍一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快。...
2020-11-09 11:54:41
382
原创 error: #268: declaration may not appear after executable statement in block
Enable c99模式
2020-11-09 11:48:25
331
原创 ..\usart\usart.c(48): error: #260-D: explicit type is missing (“int“ assumed)
把函数_sys_exit(int x)加上返回值void
2020-11-09 11:46:58
1190
原创 ADC
ADC单通道:要求进行一次ADC转换:配置为单次模式使能,扫描模式失能。这样ADC的这个通道,转换一次后,就停止转换。要求进行连续ADC转换:配置为连续模式使能,扫描模式失能。这样ADC的这个通道,转换一次后,接着进行下一次转换,不断连续。ADC多通道:要求进行一次ADC转换:配置为单次模式使能,扫描模式使能。这样ADC的多个通道,按照配置的顺序依次转换一次后,就停止转换。要求进行连续ADC转换:配置为连续模式使能,扫描模式使能。这样ADC的多个通道,按照配置的顺序依次转换一次后,接着进行下一次转
2020-11-07 21:10:32
208
原创 STM32CUBEMX实现PRINTF
一般情况下,用一个串口打印的话,重写一下fputc()函数,就可以了,keil选项里面一定要勾上uUse MicorLIB#include <stdio.h>int fputc(int ch, FILE *file){return HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, HAL_MAX_DELAY);}这样就可以在包含头文件stdio.h直接使用printf。## STM32CUBEMX实现PRINTF...
2020-11-07 21:04:56
1432
原创 stm8s stvd 编译出错
stm8s stvd 编译出错https://blog.youkuaiyun.com/u012388993/article/details/75400111错误如上解决最后一个问题后就可以了欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改...
2019-06-14 14:02:06
748
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人