推荐阅读最新更新时间:2024-03-16 15:33
一步一步实现STM32-FOTA系列教程之Bootloader编写
前言 上一篇文章《一步一步实现STM32-FOTA系列教程之FLASH静态区读写》实现了对FLASH静态区读写的操作,有了这部分功能之后,就可以实现一个非常简单的Bootloader代码了。 转载请注明出处 Bootloader 功能说明 这里提供的Bootloader功能就非常的简单了,就是在Bootloader启动之后,读取FLASH静态区的参数信息,然后判断启动分区标志位的值,然后进入相应的分区,运行该分区的程序。 注意这里的教程中没有在 Bootloader 中编写联网获取新版本的代码,这部分的实现会放到主分区和备份分区的代码中实现。 Bootloader 启动流程 这个启动流程之前已经说过了,这里贴出来,
[单片机]
Qualcomm宣布其射频前端获Google、HTC、LG、三星和索尼移动采用
2018 年1月8日,拉斯维加斯——Qualcomm Incorporated(NASDAQ: QCOM)子公司Qualcomm Technologies, Inc.宣布,众多领先OEM厂商将采用其射频前端(RFFE),其中包括Google、HTC、LG、三星和索尼移动。Qualcomm Technologies丰富的射频前端平台解决方案组合将帮助OEM厂商规模化地提供先进的移动终端,并加速产品商用。Qualcomm Technologies在射频前端设计上的实力支持其实现从调制解调器到天线解决方案的价值。 Qualcomm Technologies 是首家向OEM厂商提供完整的调制解调器到天线系统级解决方案的硬件和软件技术供应
[嵌入式]
STM32FSMC机制FlaSh存储器扩展
STM32是ST(意法半导体)公司推出的基于ARM内核Cortex-M3的32位微控制器系列。Cortex-M3内核是为低功耗和价格敏感的应用而专门设计的,具有突出的能效比和处理速度。通过采用Thumb-2高密度指令集,Cortex-M3内核降低了系统存储要求,同时快速的中断处理能够满足控制领域的高实时性要求,使基于该内核设计的STM32系列微控制器能够以更优越的性价比,面向更广泛的应用领域。 STM32系列微控制器为用户提供了丰富的选择,可适用于工业控制、智能家电、建筑安防、医疗设备以及消费类电子产品等多方位嵌入式系统设计。STM32系列采用一种新型的存储器扩展技术——FSMC,在外部存储器扩展方面具有独特的优势,可根据
[单片机]
MAX30102空气质量监测模块STM32源程序与资料
电路原理图如下: 功能实现:采用STM32F103C8T6小板,驱动血氧心率传感器max30102,实现PPG信号采集,并将计算的心率和血氧值显示在0.96寸OLED和串口上。 软件实现:ST标准库3.5 硬件连接: MAX30102: VCC - 3.3V GND - GND SCL - PB7 SDA - PB8 IM - PB9 0.96inch OLED : VCC - 3.3V GND - GND SCL - PA5 SDA - PA6 RST - PA3 DC - PA4 CS - PA2 USB-TTL: 5V - 5V GND - GND RXD -
[单片机]
STM32 进阶教程 5 - 内联函数
前言 在计算机科学中,内联函数(有时称作在线函数或编译时期展开函数)是一种编程语言结构,用来建议编译器对一些特殊函数进行内联扩展(有时称作在线扩展);也就是说建议编译器将指定的函数体插入并取代每一处调用该函数的地方(上下文),从而节省了每次调用函数带来的额外时间开支。但在选择使用内联函数时,必须在程序占用空间和程序执行效率之间进行权衡,因为过多的比较复杂的函数进行内联扩展将带来很大的存储资源开支。另外还需要特别注意的是对递归函数的内联扩展可能引起部分编译器的无穷编译。 内联扩展是一种特别的用于消除调用函数时所造成的固有的时间消耗方法。一般用于能够快速执行的函数,因为在这种情况下函数调用的时间消耗显得更为突出。这种方法对于很小的
[单片机]
STM32定时器的小问题总结
stm32的定时器用的时候是根据原子开发版的程序直接应用的,用的时候也没有具体的考量,但是在用的时候出现了一个问题,就是定时器的中断在设置之后,并没有打开定时器但是程序执行到这里就会进入中断,如果中断中有其他一些硬件功能,例如在定时器中发送一些数据,而这个时候串口并没有初始化时,就是出现程序死在这里的问题。通过网上查找资料发现是定时器中断标志未清除的问题,调用TIM_ClearFlag函数之后就不会发生以上问题了。看来在硬件配置时一定要注意这个问题,不管是其他外围设备的初始化都需要注意。之前看到SPI、USART等初始化的时候会经常加上XXX_DeInit()函数,看来也并非多余,对于硬件初始化是很有必要的,纪尽管在手册上看到
[单片机]
一种STM32微控制器处理电机控制的设计和实现
变频器是利用电力半导体器件的通断作用将工频电源变换为另一频率的电能控制装置,能实现对交流异步电机的软起动、变频调速、提高运转精度、改变功率因数、过流/过压/过载保护等功能。变频器集成了高压大功率晶体管技术和电子控制技术,得到广泛应用。变频器的作用是改变交流电机供电的频率和幅值,因而改变其运动磁场的周期,达到平滑控制电动机转速的目的。变频器的出现,使得复杂的调速控制简单化,用变频器+交流鼠笼式感应电动机组合替代了大部分原先只能用直流电机完成的工作,缩小了体积,降低了维修率,使传动技术发展到新阶段。本文将探讨基于ARM的标准微控制器如何在一个被DSP和FPGA长期垄断的市场上打破复杂的控制模式,我们将以意法半导体的基于Cortex-M
[单片机]
基于STM32对DS1302的驱动
// 程序名: STM32驱动DS1302 //头文件 #include “stm32f10x.h” #include “usart.h” #define uchar unsigned char #define uint unsigned int ////DS1302引脚定义,可根据实际情况自行修改端口定义 #define RST PAout(5) #define IO PAout(6) #define SCK PAout(7) //DS1302地址定义 #define ds1302_sec_add 0x80 //秒数据地址 #define ds1302_min_add 0x82 //分数据地址 #define ds1302_
[单片机]