
MCU
沙漠那点绿
博观而约取,厚积而薄发。
展开
-
浅析STM32生成的axf、hex、bin文件
一、前言我们在STM32的开发过程中,使用MDK编译后会生成axf、hex、bin文件,这三个文件都可以烧录到板子上去,但这三个文件具体有什么差异呢?二、文件的差异1、axf文件:编译中默认生成的文件,不仅包含代码数据还包含调试信息,我们用MDK进行debug时用的就是该文件;2、hex文件:使用十六进制符号表示的代码记录, 记录了代码应该存储到FLASH 的哪个地址,下载器可以根据这些信息辅助下载;3、bin文件:最直接的代码映像,依据axf文件生成;以上三种文件其中axf文件最大原创 2020-12-03 11:56:47 · 4900 阅读 · 0 评论 -
通俗讲解LORA中的跳频和扩频
转至:https://www.eemaker.com/lora-kuopintiaopin.htmllora是一种实现远距离低功耗的无线调制技术。实际测试,在深圳这种高楼林立的地方不加PA也可以达到上千米的传输距离。如果放在空旷没有什么障碍物的地方达到3-5km也是不成问题。那么lora相比于传统的无线调制之所有可以传输更远的距离,归功于lora使用了扩频、跳频、向前纠错等等关键特性。而关于跳频和扩频很多人把他放在一起来说,让初接触者不免产生疑问,扩频和跳频到底有什么关系,为什么这两个特性可以提高传转载 2020-10-09 18:40:49 · 2753 阅读 · 0 评论 -
modbus系列文章—汇总
https://blog.youkuaiyun.com/liming0931/article/details/103004877转载 2020-04-15 16:46:15 · 158 阅读 · 0 评论 -
探索STM32地址与偏移
疑问:一直对STM32地址存储有点疑问,比如STM32是一个32位的MCU,那是不是表示一个地址可以存储32位,这样理解看起来好像是没有问题,但是实际你查看手册,你会发现按着这个理解方式,似乎有点不对。这里我们以stm32F103x系列为例,首先我们来看手册。通过GPIO端的地址,我们可以发现相邻两个寄存器之间偏移0x04,而且一个寄存器存储32位,如果真是一个地址存储32位话,那偏移应该...原创 2020-04-15 11:26:59 · 5814 阅读 · 10 评论 -
如何使用JLINK工具下载STM32单片机固件程序
https://www.cnblogs.com/zhaoyanan/p/7838363.html原创 2019-07-31 17:19:24 · 1867 阅读 · 0 评论 -
GPIO口的八种工作状态
一直对GPIO的工作状态不是很熟悉,导致在设置IO状态时,经常会设置成推挽上拉,或者推挽下拉,开漏上拉等问题,虽然看起来没有影响MCU工作,但感觉这是一种无知的表现。现在总结下GPIO口的八种工作状态,其中四种输入状态,四种输出状态。一、输入状态1、浮空输入2、上拉输入3、下拉输入4、模拟输入二、输出状态1、推挽输出2、开漏输出3、复用推挽输出4、复用开...原创 2019-06-06 10:55:18 · 9428 阅读 · 0 评论 -
关于CC2640R2F的OAD升级
一、概念1、什么是OAD升级通过蓝牙对MCU进行空中升级。2、什么是片外OAD升级利用蓝牙将升级包下载到外部的flash中,然后再重启MCU,MCU启动后,再去外部的flash中读取升级包,最后将拷贝到内部的flash中。3、CC2640R2F的升级方式由于CC2640R2F的rom大小有限,以致不支持利用内部flash进行升级,只支持外部flash升级。4. 工程介绍...原创 2019-04-11 10:50:56 · 1487 阅读 · 1 评论 -
STM32的时钟源
一、在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。①HSI是高速内部时钟,RC振荡器,频率为8MHz。②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。③LSI是低速内部时钟,RC振荡器,频率为40kHz。④LSE是低速外部时钟,接频率为32.768kHz的石英晶体。⑤PLL为锁相环倍频输出,其时钟输入...转载 2018-11-14 16:24:51 · 9590 阅读 · 0 评论 -
STM32远程升级
首先要说明下,由于目前我对这部分也不是很清楚,只是了解大概,紧把我了解的一点分享出来。一 原理:设备需要进行远程更新升级时,需要在设计固件程序时编写两份项目代码,第一份项目程序不执行正常的功能操作,而只是通过某种通信方式接收程序或数据,执行对第二部分代码的更新,而第二份项目代码才是真正的功能代码。这两部分项目代码都同时烧录在Flash 中,当设备上电后,首先是第一份项目代码开始运行,具体操...原创 2018-11-07 17:33:41 · 16867 阅读 · 2 评论 -
基于红外遥控器的浅析
前言:家电遥控器通信距离往往要求不高,而红外的成本比其它无线设备要低的多,所以家电遥控器应用中红外使用的比较广泛。遥控器的基带通信协议很多,大概有几十种,常用的就有 ITT 协议、NEC 协议、Sharp 协议、Philips RC-5 协议、Sony SIRC 协议等。用的最多的就是 NEC 协议了。NEC协议:1、数据格式 = 引导码 + 用户码 + 用户码(或者用户码反码) + ...原创 2018-11-07 16:26:28 · 407 阅读 · 0 评论 -
基于温湿度传感器DHT11浅析
温湿度传感器DHT11:一 上电 DHT11 的供电电压为3-5.5V,传感器上电后,要等待1s 以越过不稳定状态,在此期间无需发送任何指令。二 数据格式 采用单总线数据格式,一次通讯时间,4ms 左右,数据分小数部分和整数部分,一次完整的数据传输为8bit 湿度整数数据+8bit 湿度小数数据+8bi 温度整数数据+8bit 温度小数数据+8bit 校验和,总共4...原创 2018-11-06 17:48:11 · 1990 阅读 · 0 评论 -
用DAC播放WAV文件
前言:目前基于智能门锁的开发,需要用到语音,但是由于如果用语音IC的话,声音内容就不方便调整更改,所以我们打算用单片机的DAC功能直接读取WAV文件,再用功放IC放大来实现智能语音。步骤一:用朗读女获取WAV文件有时候无法勾选WAV文件,可能是由于没有下载发音人语音导致的。步骤二:wav文件转PCM文件。WAV:wav是一种无损的音频文件格式,WAV符合 PIFF(Reso...原创 2018-09-25 11:19:05 · 5668 阅读 · 5 评论 -
基于BC95之AT命令的学习
前言:由于项目需要,调试一个BC95的NB模块,而BC95是基于AT命令的开发,以前从没接触过AT命令,也不知如何才能灵活的运用AT命令。通过网上的学习,慢慢的对AT命令也有所了解,最终只花了短短的时间便完成了BC95的调试。AT命令的经验之谈:1.AT命令的命名如 AT+CSQ,定义一个字符串 char *AT_CSQ = "AT+CSQ"。2.AT命令的结束标志,通过串口发送A...原创 2018-08-27 22:38:26 · 3300 阅读 · 0 评论 -
MCU的启动代码
启动代码通常都烧写在flash中,它是系统一上电就执行的一段程序,它运行在任何用户c代码之前。上电后,arm处理器处于arm态,运行于管理模式,同时系统所有中断被禁止,pc到地址0处取指令执行。一个可执行映像文件必须有个入口点,而能放在rom起始处的映像文件的入口地址也必须设置为0。在汇编语言中,当工程中有多个入口点时,需要在连接器中使用-entry指出程序的入口点。如果用户创建的程序中,包含了m...原创 2018-06-11 18:20:10 · 2021 阅读 · 0 评论 -
STM32问题总结
前言:最近在做一个基于STM32F091RX的智能锁项目,第一次做ST的项目,刚开始还是有点茫然,网上各种查资料,ST有两种开发方式分别是基于寄存器的开发,基于库的开发,就开发周期与简单程度来说,库开发比较方便点,但是很难让你深刻的理解各个寄存器,对于新手来说,用寄存器开发提升比较大点,对ST的理解也会更深,而我们老大,直接叫我基于HAL库的开发(基于函数库再封装一层)这样开发程度更难。成长过程:...原创 2018-06-11 16:56:22 · 1303 阅读 · 0 评论 -
MCU之UART串口,I2C,SPI通信协议
通信的条件: 人与人之间能正常沟通交流,必须保证语言是相同的,比如大家都用普通话沟通,而且语速也要一致,不然说快了,说慢了,都会导致沟通不便。而单片机与单片机之间也是如此,UART协议通过波特率一致,如9600、115200,I2C协议通过时钟线SCL,SPI协议通过时钟线SCLK,保证双方“语速”相同,而通过传输二进制保证双方“语言”相同。UART串口: 通信,按照...原创 2018-04-15 20:24:13 · 1627 阅读 · 0 评论