5 飞翔的卡布达

尚未进行身份认证

我要认证

路漫漫其修远兮,吾将上下而求索。

等级
TA的排名 3w+

Program Size: Code= RO-data= RW-data= ZI-data=

Program Size: Code= RO-data= RW-data= ZI-data= 代表了当前程序所占内存的大小。Code:程序所占用的FLASH大小,存储在FLASH中。RO-data:代表的是只读的数据,程序定义的常量,如const型,存储在FLASH中。RW-data:存储的为有初始值要求的、可读可写的数据,存储的是已经初始化的变量,存储在FLASH中。初始化时从RW-data拷贝到SRAM中。ZI-data:存储的为未被初始化的可读写变量,存储在SRAM...

2020-07-28 16:29:47

AD采样出来的数值与实际值之间的关系

当刚接触AD采样时,一直对于AD采集出来的数值与实际的值之间的关系有些模糊,现在闲暇下来打算记录一下。这里以采集量为电压量来记录,当采集温度、电流等模拟量时,都是通过一个电路把模拟量转化为一个电压量输入进AD采样引脚,就不一一叙述。 AD采样,不同的芯片有不同位数的AD,一般会有8位、12、16位,不同位数的AD对应的采集出来的数值不同,精度不同。如果说ADC为8位的,则意味着有8个Bit的内存来存储AD采集出来的数值,那么寄存器中的数值最大为255,同理,12位的AD...

2020-07-09 22:36:11

FIFO

FIFO(First Input First Output)不同于堆栈(后进先出)是一种先入先出的数据缓冲器,与普通的存储器的区别是没有外部地址总线,只能顺序的写入数据,顺序的读数据,数据地址由内部的读写指针自动加1。不能像普通的存储器由地址总线来决定读取或写入某个指定地址的地址。这种特殊的存储结构一般用于两个不同的时钟域之间的数据传输,或不同的数据宽度进行传输,如下图所示。使用FIFO时...

2019-11-30 20:21:53

工业标准 NRZ异步串行数据传输格式

NRZ (Non-return-to-zero Code),不归零编码。在了解NRZ之前,我们先来了解一下RZ 编码(Return-to-zero Code),即归零编码,所谓的归零编码就是在进行编码时每传输完一位数据,信号电平就会返回为0电平(零电平状态),比如正电平代表逻辑1(正电平状态),负电平代表逻辑0(负电平状态),那么在信号传输的过程中就会出现3种不同的信号状态,正电平、负电平、零...

2019-01-20 11:29:14

STM32_USART 串口通讯详解

对51单片机有了解的都知道51单片机的串口通讯工作原理,我们单片机使用的电平TTL电平,为了使我们的的单片机与PC进行通信,就需要一个电平转换芯片,把TTL电平转换为USB电平(使用的USB接口,如果使用的DB9接口,电平转换芯片则为TTL转RS232电平芯片),然后通过对SBUF寄存器的读写操作来实现PC与MCU的通信。STM32的串口通讯原理与51相同。下面就对USART尽行具体的介绍。U...

2019-01-04 21:52:01

SysTick_系统定时器实现流水灯

参考资料《 ARM Cortex™-M4F 技术参考手册》-4.5 章节 SysTick Timer(STK)SysTick(系统滴答定时器),本质上就是一个内嵌在NVIC中的一个定时器,属于内核中的一个外设,是一个24位的向下递减的计数器,计数器每1/SYSCLK就减1,当寄存器的值减到0的时就会产生一次(硬件上的)中断,也有叫做滴答中断。主要的目的1、用来产生精确的延时。2、一般用于操作系...

2018-12-10 22:40:52

STM32_EXTI外部中断学习笔记

参考资料:《STM32F4xx中文参考手册》系统配置控制器以及中断和事件章节。EXTI( External interrupt /evet controller)之前接触过51单片机的都了解到51单片机有两个外部中断 ,分别为外部中断0、1。用来实时地处理外部事件的一种内部机制。当某种外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后....

2018-11-25 23:35:48

STM32中断及NVIC概述

         参考资料《STM32F4xx 中文参考手册》第十章-中断和事件、《 ARM Cortex™-M4F 技术参考手册》-4.3 章节:NVIC 和 4.4章节:SCB—4.4.5的 AIRCR。           对51单片机有一定了解的都知道51单片机有5个中断源,2个优先级,通过对IP这个寄存器赋值来进行中断优先级的处理而STM32的中断非常强大,每个外设都可以产生中断,那...

2018-11-14 22:46:21

STM32系统时钟配置及时钟树

参考资料:《 STM32F4xx 中文参考手册》 RCC 章节。STM32时钟可大致分为系统时钟和其它时钟两大类,总共包含5个时钟源 HSI(High Speed Internal Clock)、HSE(High Speed External Clock)、LSI(low Speed Internal Clock)、LSE(Low Speed External Clock )、PLL(Phas...

2018-11-05 20:47:38

STM32 的位带操作

位操作就是可以单独的对一个比特位进行读和写,这个在51单片机中非常常见。51单片机中通过关键字sbit来实现位定义,STM32中则是通过访问位带别名区的地址来实现对某一位的操作。例如51单片机中可以实现以下操作#define LED_ON 0sbit LED = P2^0;LED = LED_ON;而现在STM32的位段、位带别名区就为了实现这样的功能。STM32针对SRM和外设...

2018-10-25 23:49:27

stm32实现GPIO输入按键检测

1、硬件设计按键机械触点断开、闭合时,由于按键触点的弹性作用,按键开关不会马上稳定接通或一下就断开,使用按键时就会产生下图中的带纹波信号,需要软件消抖处理滤波由于用软件消抖处理滤波不方便输入检测,所以提出了如下带有硬件消抖的电路。从按键的原理图可知,当按键没有被按下时,GPIO引脚通过一个下拉电阻R64使引脚处于低电平状态,当按键被按下时,按键所在的电路导通,VCC通过一个限流...

2018-10-24 22:46:53

stm32f4固件库函数点亮LED灯

我采用的实验板硬件原理图如下这些LED灯的阴极都是与STM32的GPIO的引脚相连接,我们只需要控制对应的引脚输出低电平,即可点亮LED灯,其中彩灯的阳极连接到的一个电路图符号“口口”,它表示引出排针,即此处本身断开,须通过跳线帽连接排针,把电源跟彩灯的阳极连起来,才可以进行操作。固件库工程配置如下标准的固件库函数工程模板在编写应用程序的过程中,要考虑更改硬件环境的情况,...

2018-10-14 12:02:11

如何新建stm32固件库工程

1、首先先新建一个工程文件夹,在它之下再新建7个文件夹DOC用于存放程序说明文件Listing存放的是编译器编译时候产生的c/汇编/链接的列表清单Output存放的是编译产生的调试信息、hex文件、预览信息、封装库等Project用来存放工程CMSIS 和 STM32F4xx_StdPeriph_Driver 用来存放的是固件库文件USER是用户编写的驱动文件2、新...

2018-10-14 12:00:54

c语言中宏定义#define

预处理器指令#define和其他预处理器指令一样,都是从#开始运行,到第一个换行符结束为止,也就是说预处理器指令的长度仅限于一个逻辑行(C语言中以 ; 作为语句的结束,不以行为单位结束,当一行的内容太长不方便卸载一行时可使用反斜杠"\"作为继续符,分为多行书写) ,在预处理开始前编译器会把多行物理行处理为一行逻辑行。#define LED_RGBOFF   LED_R_OFF;\ ...

2018-10-09 00:19:34

关于keil编译报sct(7): error: L6236E: No section matches selector - no section to be FIRST/LA处理方法

当keil 编译出现sct(7): error: L6236E: No section matches selector - no section to be FIRST/LA是由于没有加启动文件,双击左边工程框的文件夹,添加Startup开头的.s文件即可。(以stm32f429为例) ...

2018-09-28 23:27:28

关于keil 编译出现 warning: #1295-D: Deprecated declaration /函数/ - give arg types

在声明函数时,如果该函数没有参数就要在括号里加“void”例如函数定义void LED_GPIO_Init(){        GPIO_InitTypeDef  GPIO_Init_Struct;        GPIO_Init_Struct.GPIO_Pin    = LED_GPIO_PIN;        GPIO_Init_Struct.GPIO_Mode   = ...

2018-09-26 22:47:19

C语言中关键字 volatile

1、volatile      volatile关键字在c语言中用于表示变量是易变的,告诉编译器不缓存该变量,也就是每次访问改变量都要去内存访问,不会访问该变量在缓存中的副本,也就是CPU的一级二级三级等等缓存,改变的时候也是直接写回内存的,不会放到缓存里,一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变...

2018-09-22 16:26:22

库函数开发与寄存器开发

在以前 8 位机时代的程序开发中,一般直接配置芯片的寄存器,控制芯片的工作方式,如中断,定时器等。配置的时候,常常要查阅寄存器表,看用到哪些配置位,为了配置某功能,该置 1还是置 0。这些都是很琐碎的、机械的工作,因为 8位机的软件相对来说较简单,而且资源很有限,所以可以直接配置寄存器的方式来开发。对于 STM32,因为外设资源丰富,带来的必然是寄存器的数量和复杂度的增加,这时直接配置寄存器方...

2018-09-22 14:47:05

STM32F429IGT6寄存器映射点亮LED灯

 原理图如下(以PH10引脚的连接的LED灯为例)我们只需要给PH10引脚一个低电平,那么LED即可点亮。内部GPIO原理图如图所示,红色箭头即为GPIO输出方向,只要给置位/复位寄存器写数据数据就会传到输出数据寄存器(或者直接给输出数据寄存器赋值),经过推挽输出电路然后输出高低电平。首先配置与PH10引脚有关的寄存器(寄存器映射)通过查阅stm43f4的参考手册,相关...

2018-09-20 00:25:31

关于keil5警告last line of file ends without a newline解决办法

在keil进行编译的过程中总会出现 warning:  #1-D: last line of file ends without a newline解决的办法是:双击编译结果的警告,会跳到程序警告出现地方,然后将光标移至程序的最后的位置,按住delete键,直至确认后面没有空格,然后点击回车,光标会移至下一行,要确保光标处在空白行的最前端,然后编译警告即可消失。...

2018-09-15 16:16:38

查看更多

勋章 我的勋章
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。