- 博客(40)
- 收藏
- 关注
原创 STM32独立看门狗(IWDG)溢出时间计算
独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。从上图我们可以看出IWDG的时钟源为40KHz,经过预分频器后给看门狗提供时钟。与看门狗设置相关的需要设置的参数包括预分频和重载值。IWDG是递减计数。如上图所示:40K时钟4分频之后,T=1/f=0.1ms,所以最大值为4095*0.1ms=409.5ms。
2023-11-08 19:11:08
1634
原创 ROM、RAM和Flash的特点
ROM:Read-Only Memory(只读存储器),系统掉电后可保存数据。RAM:Random Access Memory(随机存取存储器),掉电后丢失数据。
2023-08-09 10:27:03
225
原创 hex文件与bin文件的区别以及如何在keil中生成bin文件
一般是指Intel标准的HEX文件,文件内容都是ASCII编码,HEX文件中同时包含数据和地址信息,所以在烧写或下载HEX文件的时候,不需要用户指定地址。BIN文件只有纯粹的数据(代码)信息,并不包含地址,所以烧写BIN时就需要指定烧写地址,一般可以在烧写工具上修改。在Keil MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。*.bin格式的文件在很多情况下也是需要的,借助Keil MDK 的fromelf.exe工具既可以实现。最后一个0xFA是校验码。
2023-08-07 09:06:07
743
原创 APM32F0xx开发------程序能下载但是运行和debug有问题
百度了很多可能性,尝试着都没成功,但是把例程的程序烧进去都能跑,然后对着例程的工程,一点一点的看,后来发现例程中device选择的是APM32F072VB,我用的是APM32F072CB,所以我在我的工程中将device改成了APM32F072CB。等到板子到了的时候,按照惯例,烧进程序闪灯,然而此时发生了一些莫名其妙的事情,程序能下载进去,但是呼吸灯并没有按照预想的闪烁起来。我可能是在例程中工程的基础上进行了开发(具体是啥我忘了,但是后边出现的莫名其妙的问题应该与此有关)。有时候就是这么神奇!
2023-07-07 10:48:59
261
原创 极海MCU---Std库与HAL库区别之时钟配置
习惯了使用STM32CubeMX配置STM32系列单片机(使用的是HAL库),最近使用APM32系列的单片机,官方提供的例程是使用的标准库(Std库),据说STM32的HAL库和标准库都能与APM32无缝连接。想使用一下标准库来开发,配置时钟时发现HAL库和标准库有一些不同。使用STM32CubeMX配置时钟的话,选好时钟,做好分频,代码自动生成了;而使用标准库的时候就需要自己来更改代码来完成时钟配置了。在HAL库的SystemInit函数中并没有时钟配置,需要单独再去配置。
2023-06-25 18:28:52
700
原创 WIFI模块开发总结(MCU)
在很多产品的应用场景中,WIFI网络会给我们提供很多亮点,MCU开发中大多使用串口WIFI模块来实现产品接入WIFI网络中。具体的使用模型如下图所示:整个系统设计到WIFI网络、手机、服务器平台以及我们设计的产品,一个完整的生态是这样的。服务器端要有数据库和管理平台,手机端有一个APP来远程查看或者操控,大部分的只能家居产品都是这个模式。
2023-05-26 17:08:41
1991
原创 结构体变量和指向结构体指针对于结构体成员的访问
结构体定义由关键字 struct 和结构体名组成,结构体名可以根据需要自行定义。是结构体标签。是标准的变量定义,比如 int i;或者 float f;,或者其他有效的变量定义。结构变量,定义在结构的末尾,最后一个分号之前,可以指定一个或多个结构变量。
2023-04-18 19:20:51
750
原创 电量计BQ35100的ACC模式使用
项目使用锂亚电池供电,由于锂亚电池的放电特性(电压在使用过程中比较稳定),很难通过电池电压来判断电量,这一点和锂电池相比是不同的。为了能够准确地测量锂亚电池的电池使用情况,我们选择使用电量计BQ35100来监测电池容量。
2023-04-18 13:57:02
1021
5
原创 C语言解析字符串中的数字字符串
在物联网设备开发中我们经常会遇到字符串解析的问题,例如平台端发送来一串时间字符串“23-04-14 15:12:23”,MCU在接收这一串字符串后需要将数字字符串分解开,本文介绍一种数字字符串的解析方法。
2023-04-14 13:56:56
782
原创 基于ADC电压采集的锂电池电量显示方法
设备采用锂电池供电,可充电,MCU的ADC采集计算锂电池电压,电池电量根据锂电池放电特性,电池电量三段段码显示(分段式显示)。
2023-04-13 14:23:39
8479
原创 LIS3DH(3轴加速度计)使用
LIS3DH 是属于 “nano” 系列的超低功耗高性能 3 轴线性加速度计,具有数字 I2C、 SPI 串行接口标准输出。器件具有超低功耗工作模式,可实现高级节能、智能睡眠唤醒以及恢复睡眠功能。LIS3DH 具有 ±2g/±4g/±8g/±16g 的动态用户可选满量程,并能通过 1 Hz 到 5 kHz 的输出数据速率测量加速度。
2023-04-06 14:16:36
3010
原创 物联网通信方式汇总
红外技术–最广泛的通信和遥控技术红外线传输是目前使用最广泛的一种通信和遥控手段。红外遥控装置具有体积小、功耗低、成本低等特点。现在的家用电视、空调等电器上基本都是使用的红外遥控技术。
2023-04-04 09:34:19
495
原创 WIFI模块不支持MQTT协议,可通过MCU实现
我们使用某款WIFI模块,在物联网开发时,平台端的开发者想要使用MQTT协议,但是我们当前使用的模块不支持MQTT协议(好像ESP8266可以通过重新烧录固件的方式支持),使用新的模块成本会增加。经过初步研究,发现MQTT协议就是基于TCP/IP的协议,WIFI模块只要能提供TCP连接,可以通过MCU的代码实现MQTT协议,而且已经有封装好的底层函数提供调用。
2023-04-03 14:23:43
1238
原创 SCD40自动校准Automatic Self-Calibration (ASC)
SCD40传感器是具有自动校准的功能的,在其技术手册中提到的,为了保证传感器在使用过程中的准确性,我们也是用了自动校准功能。在另一份手册中提到:除了周期性的触发自动校准功能,还有就是:如果在2分钟内二氧化碳读数低于400 ppm,则立即触发自校准。有些特定试验条件下(比如高低温箱)会导致传感器测量低于400ppmCO2的情况,正常来说大气中的CO2不会低于400ppm。
2023-03-17 11:43:09
709
6
原创 STM32库函数开发---库文件简介
STM32库函数开发—库文件简介STM32的3.5版本库#mermaid-svg-KHznvxZoUmomRPbz .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-KHznvxZoUmomRPbz .label text{fill:#333}#mermaid-svg-KHznvxZoUmomRPbz .nod
2021-02-28 11:39:43
920
原创 const与constexpr的区别
const与constexpr的区别const:对象变量一旦创建后其值就不能再改变,const修饰的变量必须初始化。constexpr:在C++11新标准中规定,允许将变量声明为constexpr类型以便由编译器来验证变量的值是否是一个常量表达式。例如int a=12;const int b=a;//编译能通过,程序运行到此处是初始化,此时a已经初始化值constexpr int c=a;//编译不能通过,因为constexpr修饰的变量在编译时
2020-07-20 21:40:08
917
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人