STM32F1与STM32CubeIDE编程实例W25QSPIFlash驱动
STM32F1与STM32CubeIDE编程实例-W25Q-SPI-Flash驱动W25Q-SPI-Flash驱动Winbond 的 W25X 和 W25Q SpiFlash® 多 I/O 存储器具有流行的串行外设接口 (SPI)、从 512K 位到 512M 位的密度、小型可擦除扇区和业界最高的性能。
W25X 系列支持双 SPI,有效地将标准 SPI 时钟速率提高一倍。 W25Q 系列是 25X 系列的“超集”,具有双 I/O 和四 I/O SPI,性能更高。使用 Quad-SPI 时,高达 104MHz 的时钟速率相当于 416MHz(50M-Byte/S 传输速率)。这是普通串行闪存(50MHz)性能的四倍多,甚至超过了异步并行闪存,同时使用更少的引脚和更少的空间。
本文将介绍如何简单驱动W25Q SPI内存。
1、W25Q配置开发环境搭建、系统时钟配置、调试配置及串口配置,请参考:
STM32F1与STM32CubeIDE快速入门-开发环境搭建
STM32F1与STM32CubeIDE快速入门-GPIO概述与点亮LED
STM32 ...
STM32F1与STM32CubeIDE编程实例W25QSPIFlash与SPIFFS移植
STM32F1与STM32CubeIDE编程实例-W25Q-SPI-Flash与SPIFFS移植W25Q-SPI-Flash与SPIFFS移植SPIFFS 是用于嵌入式目标上的 SPI NOR 闪存设备的文件系统。 它支持磨损均衡、文件系统一致性检查等。本文将详细介绍如何将SPIFFS移植到STM32F1中。通过前面的文章,我们成功驱动了W25Q SPI Flash,请参考:
STM32F1与STM32CubeIDE编程实例-W25Q-SPI-Flash驱动
在这个基础上,移植SPIFFS就变得很简单了。
1、SPIFFS移植关于STM32CubeIDE工程创建、配置请参考前面文章:
STM32F1与STM32CubeIDE快速入门-开发环境搭建
STM32F1与STM32CubeIDE快速入门-GPIO概述与点亮LED
STM32F1与STM32CubeIDE快速入门-USART/UART串口通信
STM32F1与STM32CubeIDE快速入门-SPI概述
第一步,下载SPIFFS源码:https://github.com/pellepl/spiffs
第二步 ...
STM32F1与STM32CubeIDE编程实例W25QSPIFlash与LittleFS移植
STM32F1与STM32CubeIDE编程实例-W25Q-SPI-Flash与LittleFS移植W25Q-SPI-Flash与LittleFS移植LittleFS是为微控制器设计的一个小故障安全文件系统。LittleFS具有如下特性:
电恢复能力 - littlefs 旨在处理随机电源故障。 所有文件操作都有强大的写时复制保证,如果断电,文件系统将回退到最后一个已知的良好状态。
动态磨损均衡 - littlefs 在设计时考虑了闪存,并提供动态块的磨损均衡。 此外,littlefs 可以检测坏块并解决它们。
有界 RAM/ROM - littlefs 旨在使用少量内存。 RAM 使用量是严格限制的,这意味着 RAM 消耗量不会随着文件系统的增长而改变。 文件系统不包含无限递归,动态内存仅限于可以静态提供的可配置缓冲区。
本文将详细介绍如何在W25Q驱动的基础上,移植LittleFS。在前面的文章中,详细介绍了如何驱动W25Q SPI Flash,请参考:
STM32F1与STM32CubeIDE编程实例-W25Q-SPI-Flash驱动
1、LittleFS移 ...
STM32F1与STM32CubeIDE编程实例W25QSPIFlash与FatFs移植
STM32F1与STM32CubeIDE编程实例-W25Q-SPI-Flash与FatFs移植W25Q-SPI-Flash与FatFs移植FatFs 是用于小型嵌入式系统的通用 FAT/exFAT 文件系统模块。 FatFs 模块是按照 ANSI C (C89) 编写的,与磁盘 I/O 层完全分离。 因此,它独立于平台。 它可以集成到资源有限的小型微控制器中,例如8051、PIC、AVR、ARM、Z80、RX等。
本文将在W25Q SPI Flash驱动的基础上,实现FatFs移植。W25Q SPI Flash的驱动在前面的文章中做了详细的介绍,请参考:
STM32F1与STM32CubeIDE编程实例-W25Q-SPI-Flash驱动
FatFs的官网地址为:http://elm-chan.org/fsw/ff/00index\_e.html
1、FatFs配置关于STM32CubeIDE工程创建、配置请参考前面文章:
STM32F1与STM32CubeIDE快速入门-开发环境搭建
STM32F1与STM32CubeIDE快速入门-GPIO概述与点亮LE ...
STM32F1与STM32CubeIDE编程实例MPU6050 六轴陀螺仪 加速度计驱动
STM32F1与STM32CubeIDE编程实例-MPU-6050 六轴(陀螺仪 + 加速度计)驱动MPU-6050 六轴(陀螺仪 + 加速度计)驱动1、MPU-6050介绍MPU-6050™ 部件是一款针对智能手机、平板电脑和可穿戴传感器的低功耗、低成本和高性能要求而设计的运动跟踪设备。
MPU-6050 集成了 InvenSense 的 MotionFusion™ 和运行时校准固件,使制造商能够消除在运动支持产品中分立器件的昂贵和复杂的选择、鉴定和系统级集成,确保传感器融合算法和校准程序提供最佳的为消费者提供性能。
MPU-6050 器件在同一硅芯片上结合了 3 轴陀螺仪和 3 轴加速度计,以及处理复杂 6 轴 MotionFusion 算法的板载 Digital Motion Processor™ (DMP™)。该器件可以通过辅助主 I²C 总线访问外部磁力计或其他传感器,从而使器件无需系统处理器干预即可收集全套传感器数据。这些器件采用 4 mm x 4 mm x 0.9 mm QFN 封装。
MPU-6050 随附的 InvenSense MotionApps™ 平台将基 ...
STM32F1与STM32CubeIDE编程实例BMP180气压温度传感器驱动
STM32F1与STM32CubeIDE编程实例-BMP180气压温度传感器驱动BMP180气压温度传感器驱动1、BMP180介绍BMP180 是用于测量气压和温度的最佳低成本传感解决方案。 传感器焊接在带有 3.3V 稳压器、I2C 电平转换器和 I2C 引脚上的上拉电阻的 PCB 上。 BMP180 取代了 BMP085。
BMP180有如下特点:
压力感应范围:300-1100 hPa(海拔9000m至-500m)
分辨率高达 0.03hPa / 0.25m
-40 至 +85°C 工作范围,±2°C 温度精度
在前面的文章中,对BMP180做了介绍,请参考:
Ardunio开发实例-BMP180气压传感器
Arduino与Proteus仿真实例-BMP180环境传感器驱动仿真
2、BMP180配置关于STM32CubeIDE工程创建、配置请参考前面文章:
STM32F1与STM32CubeIDE快速入门-开发环境搭建
STM32F1与STM32CubeIDE快速入门-GPIO概述与点亮LED
STM32F1与STM32CubeIDE快速入门-USART& ...
STM32F1与STM32CubeIDE编程实例BMP280气压温度传感器驱动
STM32F1与STM32CubeIDE编程实例-BMP280气压温度传感器驱动BMP280气压温度传感器驱动1、BMP280介绍BMP280 是一款专为移动应用设计的绝对气压传感器。 传感器模块采用极其紧凑的封装。 它的小尺寸和低功耗允许在手机、GPS 模块或手表等电池供电的设备中实施。
作为其前身 BMP180,BMP280 基于博世久经考验的压阻式压力传感器技术,具有高精度和线性度以及长期稳定性和高 EMC 鲁棒性。 众多设备操作选项提供了最高的灵活性,可针对功耗、分辨率和滤波器性能优化设备。 为开发人员提供了一组经过测试的默认设置(例如用例),以使设计尽可能简单。
BMP有如下特性:
操作范围(全精度):
压力:300…1100 hPa
温度:-40…85°C
绝对精度(Temp. @0…65°C):~ ±1 hPa
相对精度(p = 700…900hPa,Temp. @ +25…+40°C):± 0.12 hPa (典型),相当于±1 m
平均电流消耗(1 Hz 数据刷新率):2.74 μA,典型值(超低功耗模式)
睡眠模式下的平均电流消耗:0.1 μA ...
STM32F1与STM32CubeIDE编程实例HMC5883电子罗盘驱动
STM32F1与STM32CubeIDE编程实例-HMC5883电子罗盘驱动HMC5883电子罗盘驱动1、HMC5883介绍Honeywell的HMC5883L 是一款表面贴装多芯片模块,专为低场磁场感应而设计,具有数字接口,适用于低成本罗盘和磁力测量等应用。 HMC5883L 包括先进的高分辨率 HMC118X 系列磁阻传感器和一个 ASIC,其中包含放大、自动消磁带驱动器、偏移消除和一个 12 位 ADC,可实现 1° 至 2° 罗盘航向 准确性。 I2C 串行总线允许简单的接口。 HMC5883L 是一款 3.0x3.0x0.9mm 表面贴装 16 引脚无引线芯片载体 (LCC)。 HMC5883L 的应用包括移动电话、上网本、消费电子产品、自动导航系统和个人导航设备。
HMC5883L 采用霍尼韦尔的各向异性磁阻 (AMR) 技术,与其他磁传感器技术相比具有优势。 这些各向异性方向传感器具有精确的轴内灵敏度和线性度。 这些传感器的固态结构具有极低的交叉轴灵敏度,旨在测量从毫高斯到 8 高斯的地球磁场的方向和大小。 霍尼韦尔的磁传感器是业内最灵敏、最可靠的低场传感器之一。
...
STM32F1与STM32CubeIDE编程实例BH1750环境光强度传感器驱动
STM32F1与STM32CubeIDE编程实例-BH1750环境光强度传感器驱动BH1750环境光强度传感器驱动1、BH1750介绍BH1750是16位数字输出型,环境光强度传感器。主要应用有移动电话,液晶电视,笔记本电脑,便携式游戏机,数码相机,数码摄像机,汽车定位系统,液晶显示器。
BH1750具有如下特性:
I2C总线接口(f/s模式支持)
光谱响应近似于人眼反应
照度数字转换器
宽范围和高分辨率。 ( 1 - 65535 lx )
通过断电功能实现低电流
50Hz / 60Hz 光噪声抑制功能
1.8V 逻辑输入接口
无需任何外部零件
光源依赖性小。 (例如白炽灯、荧光灯、卤素灯、白光 LED、太阳灯)
可以选择 2 种 I2C 从地址。
光学窗口影响的可调测量结果(使用此功能可以检测最小 0.11 lx,最大 100000 lx。)
小的测量变化 (+/- 20%)
红外线的影响很小。
2、BH1750配置关于STM32CubeIDE工程创建、配置请参考前面文章:
STM32F1与STM32CubeIDE快速入门-开发环境搭建
ST ...
STM32F1网络编程W5500网卡驱动移植
STM32F1网络编程-W5500网卡驱动移植W5500网卡驱动移植1、W5500介绍W5500 芯片是硬连线 TCP/IP 嵌入式以太网控制器,可提供与嵌入式系统的更轻松的 Internet 连接。 W5500 使用户只需使用嵌入了 TCP/IP 堆栈、10/100 以太网 MAC 和 PHY 的单芯片即可在其应用程序中实现 Internet 连接。
WIZnet 的硬连线 TCP/IP 是经过市场验证的技术,支持 TCP、UDP、IPv4、ICMP、ARP、IGMP 和 PPPoE 协议。 W5500 嵌入了 32Kbyte 的内部存储器缓冲区,用于以太网数据包处理。 如果您使用W5500,只需添加简单的socket程序即可实现以太网应用。 它比使用任何其他嵌入式以太网解决方案更快、更简单。 用户可以同时使用8个独立的硬件socket。
W5500提供 SPI(串行外设接口)以便于与外部 MCU 集成。 W5500 的 SPI 支持 80 MHz 速度和用于高速网络通信的新型高效 SPI 协议。 为了降低系统的功耗,W5500提供了WOL ...
