嵌入式&物联网
嵌入式&物联网
小小角色熊
横看成岭侧成峰,远近高低各不同
展开
-
cJSON在STM32中的应用
写在前面:将JSON应用在STM32上面已经很普遍了,但还是有很多问题在网上找不到答案,毕竟自己造轮子和找轮子造车还是有点差别。今天就总结一下最近在STM32上使用cJSON所遇到的一些问题。-------------------------------------------正文开始线-----------------------------------------------什么...原创 2019-03-28 21:52:44 · 781 阅读 · 0 评论 -
STM32的GPIO的复用功能和重映射功能
1、复用功能:内置外设是与I/O口共用引出管脚(不同的功能对应同一管脚)STM32 所有内置外设的外部引脚都是与标准GPIO引脚复用的,如果有多个复用功能模块对应同一个引脚,只能使能其中之一,其它模块保持非使能状态。 2、重映射功能:复用功能的引出脚可以通过重映射,从不同的I/O管脚引出,即复用功能的引出脚位是可通过程序改变到其他的引脚上! 直接好处:PCB电路板的设计人员可以...原创 2018-11-12 20:02:24 · 16092 阅读 · 1 评论 -
I2C总线信号时序
I2C总线信号时序总结总线空闲状态 I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。 启动信号 在时钟线SCL保持高电平期间,数据线SDA上的电平被拉低(即负跳变),定义为I2C总线总线的启动信号,它标志着一次数据传输的开始。启动信号是一种电平跳...原创 2018-12-03 09:47:20 · 1954 阅读 · 0 评论 -
cJSON的构造和解析
1.JSON格式简述JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#...原创 2019-03-28 21:50:29 · 1109 阅读 · 0 评论 -
PID算法完全讲解
总所周知,PID算法是个很经典的东西。而做自平衡小车,飞行器PID是一个必须翻过的坎。因此本节我们来好好讲解一下PID,根据我在学习中的体会,力求通俗易懂。并举出PID的形象例子来帮助理解PID。一、首先介绍一下PID名字的由来:P:Proportion(比例),就是输入偏差乘以一个常数。I :Integral(积分),就是对输入偏差进行积分运算。D:Derivative(微分),对输入...原创 2018-11-06 19:10:35 · 54328 阅读 · 8 评论 -
为什么要加上拉电阻和下拉电阻
上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!下拉同理!上拉是对器件注入电流,下拉是输出电流。弱强只是上拉电阻的阻值不同,没有什么严格区分。对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。为什么要使用拉电阻: 1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COM...原创 2018-11-04 14:52:48 · 5209 阅读 · 0 评论 -
有关上拉输入、下了输入、推挽输出、开漏输出、复用开漏输出、复用推挽输出以及、浮空输入、模拟输入区别
1、上拉输入:上拉就是把电位拉高,比如拉到Vcc。上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!弱强只是上拉电阻的阻值不同,没有什么严格区分。 2、下拉输入:就是把电压拉低,拉到GND。与上拉原理相似。 3、浮空输入:浮空(floating)就是逻辑器件的输入引脚即不接高电平,也不接低电平。由于逻辑器件的内部结构,当它输入引脚悬空时,相当于该引脚接了高电平。一...原创 2018-11-02 10:02:10 · 422 阅读 · 0 评论 -
LSB最低有效位和MSB最高有效位
最低有效位(the least significant bit,lsb)是指一个二进制数字中的第0位(即最低位),具有权值为2^0,可以用它来检测数的奇偶性。与之相反的称之为最高有效位。在大端序中,lsb指最右边的位。 图1 无符号数149的二进制形式,蓝色为最高有效位 最低有效位代表二进制数中的最小的单位,可以用来指示数字很小的变化。...原创 2018-11-04 14:49:28 · 2993 阅读 · 0 评论 -
NVIC
NVIC全称为Nest Vector Interrupt Controller,人们一般称之为“嵌套中断向量控制器”,是用来管理中断嵌套的,核心任务就是在于其优先级的管理。NVIC给每个中断赋予先占优先级和次占优先级。它们的关系描述如下:1、拥有较高先占优先级的中断可以打断先占优先级较低的中断(类似前面所说的执行优先级)。2、若两个先占优先级的中断同时挂起,则优先执行次占优先级较高的中断。...原创 2018-11-06 09:44:14 · 647 阅读 · 0 评论 -
上拉输入、下拉输入、浮空输入、模拟输入的区别
以及上拉输入、下拉输入、浮空输入、模拟输入的区别最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多:(1)GPIO_Mode_AIN 模拟输入(2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_IPD 下拉输入(4)GPIO_Mode_IPU 上拉输入(5)GPIO_Mode_Out_OD 开漏输出(6)GPIO_...原创 2018-10-31 09:46:25 · 10161 阅读 · 1 评论 -
STM32的位段操作
第一篇文章写位段操作。位操作就是可以读/写单独的一个比特位,在STM32中没有像51单片机的sbit来实行位定义,但是它可以通过位带别名区来实现。 在STM32中有两个地方实现了位带操作,一个是SRAM区的最低1MB空间,另一个是外设区最低1MB空间。0x2000 0000 ~ 0x200f ffff (SRAM区中的最低1MB)0x4000 0000 ~ 0x400f ffff (片...原创 2018-11-04 14:39:57 · 1764 阅读 · 0 评论 -
i2c时序图
i2c简易时序图 启动信号: SCL为高电平的时候,SDA由高电平向低电平跳变。结束信号:SCL为高电平的时候,SDA由低电平向高电平跳变。 应答信号: I2C总线上的所有数据都是以8位字节传送的,发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。应答信号为低电平时,规定为有效应答位(ACK简称应答位),表示接收器已经成功地接收了该字节;应答信号...原创 2018-11-27 15:18:30 · 1772 阅读 · 0 评论 -
【UCOSIII】UCOSIII的任务调度和切换
UCOSIII任务调度可剥夺型任务调度任务调度就是中止当前正在运行的任务转而去执行其他的任务。UCOSIII是可剥夺型内核,因此当一个高优先级的任务准备就绪,并且此时发生了任务调度,那么这个高优先级的任务就会获得CPU的使用权!UCOSIII中的任务调度是由任务调度器来完成的,任务调度器有2种:任务级调度器和中断级调度器。任务级调度器为函数OSSched();中断级调度器为函数O...原创 2019-03-22 17:21:32 · 589 阅读 · 0 评论 -
UC/OS-II的内存管理OSMemCreate()分析
我们在写应用程序的过程中通常都是采用一个malloc/free系列函数进行内存的管理,这样分配的内存空间是从应用程序的栈空间分配处理,一般而言我们在写程序的过程中要对内存空间进行适时的释放,才不至于导致栈空间的不足,当然这样也会导致内存垃圾的产生,因为不同大小的内存分配因为对齐等原因导致很多的内存不能再使用,进而使得系统的可用内存越来越小,因此在实时操作系统中通常都需要创建自己的内存管理操作。...原创 2018-10-21 20:27:38 · 791 阅读 · 0 评论 -
jms、amqp、mqtt区别与联系
消息传递作为基本通信机制已经在全世界成功运用。无论是人与人、机器与人还是机器与机器之间,消息传递一直都是唯一常用的通信方式。在双方(或更多)之间交换消息有两种基本机制。同步消息传递 异步消息传递同步消息传递在这种情况下使用,当消息发送者希望在某个时间范围内收到响应,然后再进行下一个任务。基本上就是他在收到响应前一直处于“阻塞”状态。异步消息意味着发送者并不要求立即收到响应,而且也不会阻...原创 2019-03-18 09:30:25 · 194 阅读 · 0 评论