首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

STM32Cube-01 | 初识 STM32 Cube 生态系统

STM32Cube PC Tools STM32Cube MX:适用于任何STM32设备的配置工具 该工具用Java编写,所以可以在Windows、Linux、Mac上运行,它可以使用用户通过图形用户界面对微控制器进行配置...STM32CubeProgrammer:编程工具(给编程指给单片机烧录程序) 该工具通过各种可用的通信方式(比如JTAG,SWD,UART,USB DFU,I2C,SPI,CAN等),提供了易于使用且高效的环境...,用于读取,写入和验证存储器。...用户代码 底层库代码 STM32Cube提供的HAL库或者LL库,覆盖STM32全系列,包括: ?...至此,对STM32Cube生态系统的介绍完毕,下一节讲述如何获取STM32Cube生态系统中的PC tools和Embeded Software,敬请期待。

1.1K30

stm32编程入门书籍_STM32开发板

STM32的4个库 先给结论:从ST公司的发展方向和主推的库来讲,目前使用HAL是最正确的选择。...每个STM32系列的100多个片段演示了如何以最小的内存占用有效地使用STM32外围设备。STM32Snippets目前官方只提供:STM32F0和L0的示例代码包。...HAL:Hardware Abstraction Layer,硬件抽象层库 STM32Cube HAL 和 LL配合STM32CubeMX工具对STM32进行开发。...LL库相对HAL,具有简单的结构,针对之前从事SPL(标准外设库),或寄存器开发的人员。STM32Cube HAL 和 LL是目前官方主推,并重点维护和更新的库,也建议大家都学习一下。...而且新出来的型号(如L5、G4等系列)没有标准外设库,只有STM32Cube HAL 和 LL库了。

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一文搞懂HAL库是什么及如何使用

    一般大多数都会选用标准库和HAL库,而极少部分人会通过直接配置寄存器进行开发。   网上关于标准库、HAL库的描述相信是数不胜数。...在一开始我定义了一个串口接收缓存区: /*HAL库使用的串口接收缓冲,处理逻辑由HAL库控制,接收完这个数组就会调用HAL_UART_RxCpltCallback进行处理这个数组*/ /*RXBUFFERSIZE...使用CubeMX生产项目时,可以选择LL库。   HAL库最大的特点就是对底层进行了抽象。...2、 三种编程方式 HAL库对所有的函数模型也进行了统一。在HAL库中,支持三种编程模式:轮询模式、中断模式、DMA模式(如果外设支持)。...至于使用者使用何种方式,就看自己的选择了。   此外,新的HAL库架构下统一采用宏的形式对各种中断等进行配置(原来标准外设库一般都是各种函数)。

    23.1K1210

    STM32通信硬件 I2C

    初始化I2C协议相关参数:设置速度、寻址长度模式等; 初始化I2C硬件相关参数:I2C时钟使能、GPIO端口时钟使能、GPIO引脚设置为I2C复用; 使用HAL提供的I2C对AP3426读写,封装AP3426...“HAL_I2C_Init()”初始化前面的“hi2c”,“HAL_I2C_Init()”会调用“HAL_I2C_MspInit()” 进行硬件相关初始化,“HAL_I2C_MspInit()”的内容需要自己编写...初始化后,便可使用HAL库提供的I2C发送/接收函数,HAL提供三种主机收发函数: HAL_I2C_Master_Receive()/HAL_I2C_Master_Transmit():I2C收发数据,...使用超时管理模式; HAL_I2C_Master_Receive_IT()/HAL_I2C_Master_Transmit_IT():I2C收发数据,使用中断模式; HAL_I2C_Master_Receive_DMA...()/HAL_I2C_Master_Transmit_DMA():I2C收发数据,使用DMA模式;这里三种收发函数都可满足需求,这里简单处理,没有使用中断和DMA,因此使用超时管理模式。

    1.1K10

    STM32Cube-12 | 使用硬件I2C读写环境光强度传感器

    本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件I2C外设读取环境光强度传感器数据(BH1750)。 1....配置硬件I2C 首先查看小熊派开发板的原理图,确定EEPROM接在哪个I2C接口上,如图: ? 接下来开始配置I2C接口1: ?...编写BH1750驱动程序 参考『bh1750FVI Datasheet』进行编程。 宏定义BH1750器件地址 BH1750的器件地址由ADDR端口的高低电平决定: ?...本驱动程序底层使用 HAL 库的 IIC 初始化文件,所以包含如下头文件: #include "bh1750_i2c_drv.h" #include "i2c.h" 根据上图,发送命令的函数如下: /...至此,我们已经学会如何使用硬件IIC接口读取环境光强度传感器数据(BH1750),下一节将讲述如何使用硬件IIC接口读取温湿度传感器数据并使用软件CRC校验(SHT30)。

    1.6K20

    【STM32】HAL库 STM32CubeMX教程十二—IIC(读取AT24C02 )

    前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 在之前的标准库中,STM32的硬件IIC非常复杂,更重要的是它并不稳定,所以都不推荐使用。...但是在我们的HAL库中,对硬件IIC做了全新的优化,使得之前软件IIC几百行代码,在HAL库中,只需要寥寥几行就可以完成 那么这篇文章将带你去感受下它的优异之处 这可能是目前关于STM32CubeMX...5、IIC: 使用硬件IIC1 知识概括: 通过本篇博客您将学到: IIC的基本原理 STM32CubeMX创建IIC例程 HAL库IIC函数库 AT24C02 芯片原理 IIC 简介 IIC(Inter-Integrated...重新发送开始信号(START) 发送设备读操作地址(DEVICE ADDRESS)对E2PROM进行读操作 (0xA1) E2PROM会自动向主机发送数据,主机读取从器件发回的数据,在读一个字节后,MCU...中有定义 *pData: 需要写入的的数据的起始地址 Size: 传输数据的大小 多少个字节 Timeout: 最大读取时间,超过时间将自动退出函数 使用HAL_I2C_Mem_Write

    4.4K31

    PHPGD库如何使用SVG格式进行图像处理

    使用PHP GD库进行图像处理是PHP编程开发中常用的技术,而将其与SVG格式结合使用可以使图像处理更加灵活、高效和美观。本篇文章将围绕PHP GD库如何使用SVG格式进行图像处理展开探讨。...PHPGD库如何使用SVG格式进行图像处理SVG是可缩放矢量图形(Scalable Vector Graphics)的缩写,是一种基于XML的开放标准矢量图形文件格式,支持图像的无损放大和缩小,同时还可以用...三、PHP GD库如何使用SVG格式进行图像处理?PHP GD库是PHP中一种常用的图像处理库,它支持各种常见的位图格式(如JPEG、PNG等)和少数矢量图形格式(如PDF),但不支持SVG格式。...因此,我们可以使用php-svg-lib库来将SVG格式文件转换为PNG格式文件,这个过程不会重新生成图片。第二步,使用PHP GD库对PNG格式的图片进行图像处理。...在使用PHP GD库对PNG格式的图片进行图像处理时,就像使用任何其他支持的格式一样,可以使用GD库中提供的函数绘制、剪切、改变大小、旋转、加水印、合并等操作。

    36720

    Kotlin 中如何使用 Fuel 库进行代理切换?

    无论是构建移动应用、Web 应用还是后端服务,都需要与网络进行交互。而代理服务器在网络通信中扮演着至关重要的角色,它可以帮助我们实现匿名访问、提高访问速度、解决网络限制等问题。...本文将介绍 Kotlin 中如何使用 Fuel 库进行代理切换,带领读者探索网络编程的新潮流。1. 什么是 Fuel 库?...Fuel 是一个基于 Kotlin 编写的 HTTP 客户端库,它简化了网络请求的发送和响应处理过程。...使用 Fuel,开发者可以更加便捷地与网络进行交互,从而加速应用程序的开发和部署过程。2. 为什么需要代理切换?在实际的网络通信中,我们经常会遇到需要使用代理服务器的情况。...使用 Fuel 库进行代理切换3.1 添加 Fuel 依赖首先,我们需要在项目中添加 Fuel 库的依赖。

    11610

    STM32Cube-15 | 使用硬件I2C读写温湿度传感器(SHT30)

    本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件I2C外设,读取SHT30温湿度传感器的数据并通过串口发送。 1....SHT30温湿度传感器 SHT30温湿度传感器是一个完全校准的、现行的、带有温度补偿的数字输出型传感器,具有 2.4V-5.5V 的宽电压支持,使用IIC接口进行通信,最高速率可达1M并且有两个用户可选地址...配置I2C接口 查看小熊派E53接口的原理图: ? 接下来开始配置I2C接口1: ? 配置时钟树 STM32L4的最高主频到80M,所以配置PLL,最后使HCLK = 80Mhz即可: ?...修改I2C初始化代码的小BUG ? 4. 编写SHT30驱动程序 参考『SHT30 datasheet.pdf』进行编程。...至此,我们已经学会如何使用硬件IIC接口读取温湿度传感器数据并使用软件CRC校验(SHT30),下一节将讲述如何使用硬件CRC校验SHT30的数据。

    5.2K20

    STM32MP157D-DK1 STM32CubeID使用与M核开发

    STM32MP157具有A7内核核M4内核,前面介绍的一些文章,都是在A7内核上进行的,本篇来介绍M4内核的开发,以及开发时要用到的STM32 CubeIDE软件的使用。...1 STM32 CubeIDE创建LED工程 STM32CubeIDE是一体式多操作系统开发工具,是STM32Cube软件生态系统的一部分。...files,工程会从 STM32Cube MCU 软件包中拷贝需要用到的 HAL 库文件, 没用到的不会拷贝 Generate peripheral initialization as a pair...(LD7_GPIO_Port,LD7_Pin,GPIO_PIN_SET); HAL_Delay(500); HAL_GPIO_WritePin(LD7_GPIO_Port,LD7_Pin,GPIO_PIN_RESET...); HAL_Delay(500); 注意代码添加的位置,要添加在成对出现的BEGIN和END的区域之间: 然后点击“小锤子”图标进行编译,可以看到如上图0错误0警告。

    26510

    如何使用Colly库进行大规模数据抓取?

    Colly库作为Go语言中一个轻量级且功能强大的爬虫框架,能够满足大规模数据抓取的需求。本文将详细介绍如何使用Colly库进行大规模数据抓取,并提供实现代码。...Colly库概述Colly是一个使用Go语言编写的快速、轻量级的网页爬虫框架。它支持异步处理,能够同时处理多个请求,从而显著提高数据抓取的效率。...Colly允许你设置错误处理函数,以便在请求失败时进行重试或其他处理。...代理使用在大规模抓取时,使用代理可以帮助分散请求来源,避免IP被封。...通过使用Colly,我们可以轻松地实现并发控制、请求限制、遵守Robots协议、错误处理、数据存储、分布式爬取、用户代理和请求头设置以及代理使用等高级功能。

    14810

    一文带你读懂I2C协议

    实现I2C需要两根信号线完成信息交换,SCL时钟信号线,SDA数据输入/输出线。它属于同步通信,由于输入输出数据均使用一根线,因此通信方向为半双工。...3、I2C的功能特点 I2C最重要的功能包括: 只需要两条总线; 没有严格的波特率要求,例如使用RS232,主设备生成总线时钟; 所有组件之间都存在简单的主/从关系,连接到总线的每个设备均可通过唯一地址进行软件寻址...7、I2C死锁 在实际使用过程中,I2C比较容易出现的一个问题就是死锁 ,死锁在I2C中主要表现为:I2C死锁时表现为SCL为高,SDA一直为低。...同样,当I2C进行读操作,I2C从设备应答后输出数据,如果在这个时刻I2C主设备异常复位而此时I2C从设备输出的数据位正好为0,也会导致I2C总线进入死锁状态。...8、I2C的代码实现 参考了STM32的HAL库中I2C驱动,主设备发送函数HAL_I2C_Master_Transmit()具体如下: /** * @brief Transmits in master

    9.7K23

    STM32通信模拟 I2C

    如果使用MCU的I²C控制器,设置好I²C控制器, I²C控制器就自动实现协议时序,这种方式称为硬件I²C。...此外,I2C的两个脚SCL和SDA都进行了上拉处理,从而保证I2C总线空闲时,两根线都必须为高电平。...19.3 软件设计 19.3.1 软件设计思路 实验目的:本实验通过GPIO模拟I2C总线时序,对EEPROM设备AT24C02进行读写操作。...引脚初始化:GPIO端口时钟使能、GPIO引脚设置为输入/输出模式(PB6、PB7); 封装I2C每个环节的时序函数:起始信号、响应信号、读写数据、停止信号; 使用I2C协议函数,实现对AT24C02的读写...8位,AT24C04/08/16 为16位); – 63行:再次发送I2C开始信号; – 66行:发送AT24C02的设备地址,最后一位表示读操作; – 69行:读取AT24C02数据,且无需ACK

    1K10

    STM32F103GPIO-LED点灯

    还有一些外部功能模块,需要多个引脚构成的“协议”进行通信,比如UART、I2C、SPI接口等。...还有一些外部功能模块,需要多个引脚构成的“协议”进行通信,比如UART、I2C、SPI接口等。...通常简单外设,比如LED灯、蜂鸣器灯,建议使用2MHz的输出速度,而复用为I2C、SPI等通信信号引脚时,建议使用10MHz或50MHz以提高响应速度。...LED灭:OFF-灭,ON-亮 RLED(OFF); GLED(OFF); BLED(OFF); 4)HAL库延时 HAL库使用系统滴答定时器(此定时器在后序章节中详细讲解)封装了一个延时函数...RLED(OFF); HAL_Delay(1000); } } 4行:对HAL库的初始化,这一步的作用是初始化中断优先级组别以及对系统滴答定时器进行默认的初始化; 6行:时钟初始化

    88310

    STM32库开发实战指南 PDF+源码

    ③.在理解 ② 的基础上,利用官方提供的标准固件库或者HAL库对外设寄存器与数值功能的封装,用户可以更好方便进行编程。...④.理解了如何使用标准固件库或者HAL库的编程方式后,逐步学习芯片内部常用外设和功能:GPIO普通输入输出、中断、定时器、串口、SPI、I2C、ADC、液晶屏幕显示基础界面、SDIO等等 利用例程在开发板底板上的对应连接进行试验...3.开发板选择 ①.对于任意开发板 STM32芯片本身和大部分常用外设比如GPIO、串口、定时器、SPI、I2C、ADC等等的知识都相通,所以都可以利用底板或者外接上述接口的传感器模块等进行试验, 初学者建议使用...②.F103至F429开发板各自录制有利用标准固件库开发视频。 F767以上官方只提供HAL库,最新录制的HAL库开发视频统一涵盖F1至H7芯片知识点。...关于标准固件库和HAL库选择,没有本质上的差异,只是库整体的封装程度和提供的函数使用方式等等不同,主要的STM32芯片本身知识相通,任意先学习一种和两种都学习加深对比思考都可以。

    3.1K20
    领券