
STM32单片机
文章平均质量分 68
单片机的芯片开发常用案例,注意兼容性上只支持F103系列
qq_755682240
一个什么都想学一学的小鱼儿
展开
-
STM32使用EXTI触发进行软件消抖
在STM32的HAL库中,为了实现按键的软件消抖,通常需要在按键中断处理程序中加入一定的状态检测逻辑。以下是一个简单的示例,展示了如何使用HAL库来实现按键的软件消抖。假设你有一个按键连接到GPIO引脚,并且已经配置好了相应的GPIO初始化代码。在按键中断服务程序(ISR)函数中,实现按键检测和软件消抖逻辑。存储按键的当前按下时间,下一次触发按下的时间则需要大于。原创 2025-03-12 11:45:11 · 529 阅读 · 0 评论 -
STM32使用NRF2401进行数据传送
NRF2401适用于多种无线通信的场合,如无线数据传输系统、无线鼠标、遥控开锁、遥控玩具等。其低功耗、高数据速率和多频道通信的特点使其成为物联网、智能家居和穿戴式设备等领域中备受推崇的无线解决方案之一。NRF2401具有多种工作模式,包括收发模式、配置模式、空闲模式和关机模式。这些模式由PWR_UP、CE和CS三个引脚控制。原创 2025-02-21 15:21:04 · 1536 阅读 · 0 评论 -
STM32通过8位并口驱动TFT-1.8寸屏(ST7735)显示器
屏幕尺寸:1.8英寸分辨率:128x128像素色彩:支持16位色彩深度(5位红、6位绿、5位蓝各通道),能够提供相对丰富的颜色表现。接口类型:MCU接口,可通过SPI协议与微控制器进行通信。驱动型号:ST7735功能:ST7735是一款低功耗的彩色TFT液晶屏驱动芯片,广泛应用于各种嵌入式系统和电子设备中。它集成了RGB RAMDAC(随机存取的数字模拟转换器)、控制器和GPIO接口,支持硬件加速图形绘制功能,如画点、线、矩形、填充以及文本显示等。原创 2024-11-19 09:50:22 · 2091 阅读 · 0 评论 -
STM32获取SHT3X温湿度芯片数据
SHT3X是Sensirion公司推出的一款高精度、完全校准的温湿度传感器,基于CMOSens技术。它提供了线性化、温度补偿的数字输出,具有宽电源电压范围、高速I2C接口以及可选的地址设置等特点。高精度:SHT3X提供了高精度的温湿度测量,湿度误差在±3%(SHT30)或±2%(SHT31)以内,温度误差在±0.3℃(SHT30)或±0.2℃(SHT31)以内。宽电源电压范围:SHT3X的供电电压范围宽达2.4V至5.5V,确保了与各种组装情况的兼容性。高速I2C接口。原创 2024-11-11 16:19:33 · 1269 阅读 · 0 评论 -
STM32移植LVGL(版本:lvgl-8.3.10)
还是在 lv_port_disp_template.c 中,向下滚动,找到disp_flush( )函数。要是你的LCD驱动文件中,有区域填充颜色的函数,就能大量地减少指令、坐标值的发送次数。双击打开 lv_conf_template.h,对以下内容进行修改,以启用此文件。第86行到101行,LVGL 提供了创建显示缓冲区的3种方式,这里,必须3选1。还是在 lv_port_disp_template.c 中,向下滚动,如果没有区域填充函数,不用强求,直接使用画点函数吧,先完成,再完善。原创 2024-10-31 15:12:25 · 4367 阅读 · 0 评论 -
STM32通过SPI驱动TFT-1.44寸屏(ST7735)显示器
ST7735作为一款集成度高的驱动芯片,不仅支持多种分辨率(在1.44寸屏上通常为128x128像素),还具备RGB RAMDAC、控制器和GPIO接口等功能,并通过SPI接口与微控制器进行通信。通过编写相应的驱动程序,可以方便地初始化ST7735驱动芯片,配置SPI接口,并发送显示数据,使TFT1.44寸屏正常工作。基于STM32 HAL库编写的,使用下面这些函数通过SPI接口与TFT进行通信,并执行各种控制操作,如写入寄存器、写入数据、显示开启/关闭等。原创 2024-10-30 14:08:40 · 3847 阅读 · 0 评论 -
精密运放与普通运放的区别
精密运放和普通运放之间的区别主要体现在性能、设计、应用场合以及关键参数上。原创 2024-09-20 16:42:55 · 1376 阅读 · 0 评论 -
Keil编译自动生成bin文件
请注意,上述步骤可能因Keil版本和项目设置的不同而略有差异。确保你的路径和文件名正确无误,并且你已经正确设置了所有必要的选项。原创 2024-05-20 13:36:27 · 3414 阅读 · 0 评论 -
STM32使用旋转编码开关
总的来说,旋转编码开关是一种功能强大、应用广泛的电子元器件,在工业自动化、机器人技术、伺服控制系统、电梯、电机控制、音视频设备、游戏控制器以及其他需要精确位置控制和速度反馈的各种机械设备中都有重要的应用。当A或者B引脚触发后,然后通过检测另外一个引脚的状态来确定波动旋转编码开关的方向,具体操作如下所示。首先需要在CubeMX中选择适当的引脚连接旋转编码开关的输出引脚,并将其设置为EXTI模式,然后对引脚启用中断功能。当改变状态时,如果 A:下降沿,B:为高电平,则顺时针转动旋钮。原创 2024-05-18 08:45:02 · 2314 阅读 · 0 评论 -
驱动PCA9555扩展IO芯片
通用性:PCA9555是一款24引脚的CMOS器件,为I²C总线/SMBus应用提供16位通用并行输入/输出(GPIO)扩展。它旨在增强恩智浦半导体的I2C总线I/O扩展器系列,具有更高的驱动能力、5V I/O容差、更低的电源电流、独立的I/O配置和更小的封装。配置灵活性:PCA9555由两个8位配置(输入或输出选择)组成,包括输入、输出和极性反转(高电平有效或低电平有效操作)寄存器。系统控制器可以通过写入I/O配置位来启用I/O作为输入或输出。每个输入或输出的数据保存在相应的输入或输出寄存器中。原创 2024-05-14 11:30:38 · 4654 阅读 · 0 评论 -
Keil编译自动生成定制的HEX文件
实现了一个自动化功能,主要用于keil编译时对项目生成的.hex文件进行管理,并基于特定的版本号和当前编译时间对hex文件进行重命名。原创 2024-05-10 16:31:13 · 1813 阅读 · 0 评论 -
GPIO输出模式详解
在推挽输出模式下,设备可以主动输出高电平和低电平。:在开漏输出模式下,设备只能将输出端口连接到地(GND)或者不连接,不能主动输出高电平。当设备要输出高电平时,它将输出端口拉到高阻抗状态,也就是不连接到电源电压,从而允许外部电路通过上拉电阻将电平拉到高电平。总的来说,开漏输出是一种在多设备共享同一信号线的情况下非常有用的输出模式,特别适用于一线双向通信总线。总的来说,推挽输出是一种适用于各种负载和数字控制应用的输出模式,它能够提供稳定的高和低电平以及较大的输出电流,但需要谨慎管理以避免冲突。原创 2023-09-04 09:21:18 · 2789 阅读 · 0 评论 -
GD32替代STM32使用Cube MX的HAL库开发
一、STM32F103与GD32F103 差别比较1、 “ 相同 ” 之处:1)外围引脚Pin兼容,每个引脚上的复用功能也完全相同。2)芯片内部寄存器、外部IP寄存器地址和逻辑地址完全相同,但是有些寄存器默认值不同,有些外设模块的设计时序上和STM32有差异,这点差异主要体现在软件上修改,详情见下文。3)型号命名方式完全相同,所以替代只需找尾缀相同的型号即可,例如:STM32F103C8T6 与 GD32E103C8T6。从上面的介绍中,我们可以看出,GD32F30/E103系列和STM32F10原创 2022-04-12 14:13:09 · 14698 阅读 · 12 评论 -
STM32与GD32—F103系列的差别
原创 2022-03-02 14:17:31 · 1589 阅读 · 0 评论 -
控制WS2812B实例代码(旧_GPIO方式)
WS2812B数据协议采用单线归零码的通讯方式,像素点在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少24bit。原创 2023-03-21 13:10:51 · 4458 阅读 · 0 评论 -
控制WS2812B实例代码(新_PWM方式)
WS2812B数据协议采用单线归零码的通讯方式,像素点在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少24bit。原创 2024-08-21 13:58:24 · 1700 阅读 · 0 评论 -
舵机控制使用
本文仅介绍固定180度舵机(MG996R舵机、SG90舵机、MG90S舵机等引脚功能:舵机的转动角度跟输入脉冲有关,详细看下表:可以发现一个规律:角度每次增加45度,高电平时间相应增加0.5ms 总周期 - 高电平脉冲 = 低电平脉冲 舵机角度的转动就是通过高、低脉冲的变化实现的例代码:#include <regx51.h> sbit PWM=P1^1; //定义给舵机信号线接的I/O口 void Delay(unsigned char i) /原创 2022-01-27 11:57:49 · 5112 阅读 · 0 评论 -
热敏电阻NTC103、PT100温度计算公式
NTC 热敏电阻温度计算公式:Rt = R *EXP(B*(1/T1-1/T2)) (1) T1和T2指的是K度,即开尔文温度。 (2) Rt 是热敏电阻在T1温度下的阻值。(3) R是热敏电阻在T2常温下的标称阻值。100K的热敏电阻25℃的值为100K(即R=100K)。(4) T2=(273.15+25)。 (5) EXP(?)是 e 的 ? 次方。 (6) B值是热敏电阻的重要参数。。。原创 2022-10-02 16:32:23 · 19161 阅读 · 0 评论 -
IIC驱动OLED显示器(模拟IIC)
2、创建oled.c文件3、创建bmp.h文件4、创建oledfont.h文件5、复制语句到主函数中5.1、加入头文件5.2、在main函数中加入下面指令原创 2022-07-08 13:32:03 · 1461 阅读 · 1 评论 -
IIC驱动OLED显示器(硬件IIC_HAL库)
OLED(Organic Light Emitting Diode)是一种先进的显示技术,它由一系列有机薄膜组成,这些薄膜会在电流通过时发光。与传统的液晶显示器(LCD)不同,OLED不需要背光源,因此能够实现更高的对比度和更鲜艳的颜色。OLED显示屏由许多微小的发光二极管(LED)组成,每个LED都可以独立发光,从而使得OLED可以实现更高的分辨率和更快的响应速度。此外,OLED还具有更广的视角和更薄的结构,适用于各种应用领域。原创 2023-08-22 11:05:19 · 1265 阅读 · 1 评论 -
移植U8g2图形库—驱动OLED显示(模拟IIC)
本篇,介绍一下U8g2库如何移植到STM32上,进行OLED的图形显示,本实验使用的OLED-0.96寸(SSD1306)作为驱动显示屏。原创 2023-08-26 13:39:46 · 1499 阅读 · 0 评论 -
驱动LCD12864显示器
LCD12864是一种128x64像素分辨率的液晶显示器,通常用于嵌入式系统和电子设备中,以显示字符、图像和其他信息。它的驱动IC型号是ST7567A,这个IC是一款常用于控制12864型LCD的驱动芯片。以下是关于LCD12864和ST7567A驱动IC的详细介绍:LCD12864液晶显示器: LCD12864的名称中包含了一些关键信息:"LCD" 表示它是一种液晶显示器(Liquid Crystal Display),通过控制液晶分子来显示图像。原创 2023-10-11 11:04:01 · 1820 阅读 · 0 评论 -
STM32_HAL库串口printf函数重定义
总的来说,这段代码实现了将标准输入输出函数 printf 和 scanf 重定向到串口,从而可以通过串口进行数据的输入和输出,这在嵌入式系统中非常常见,用于与外部设备或调试工具进行通信。接下来,通过宏定义选择了串口发送数据的类型,有两种选择,分别是 HAL_USART 和 HAL_USART_DMA。根据不同的宏定义,可以使用不同的方式来发送数据,一种是阻塞式的串口发送,另一种是使用DMA(直接内存访问)来发送数据。类似地,定义了一个 fgetc 函数,该函数用于重定向 scanf 函数,从串口接收数据。原创 2022-03-04 10:39:34 · 11903 阅读 · 0 评论 -
STM32软件复位方式
在很多时候我们外部硬件方式不能复位或者不方便操作的情况下,软件复位的方式就变得很实用了。可以写入到串口,当串口发送特定字符就复位;也可以某个按键设置了长按就复位等等快捷的方式进行复位。在复位发生器执行复位命令时,往往会有一个延时。在此延时期间,仍然可以响应中断请求这里就有可能触发中断,所以在复位前最好先关闭全部中断。//软件复位函数void System_Reset(void) { __set_FAULTMASK(1); //关闭所有中断 NVIC_SystemReset(); //进行软件复位原创 2022-04-13 11:55:12 · 11107 阅读 · 4 评论 -
STM32实现程序跳转
目录一、实现方法二、例程下载一、实现方法第 1 个程序:#define FLASH_SAVE_ADDR 0x08020000 //设置 FLASH 地址(必须为偶数,且其值要大于本代码所占用FLASH的大小+0X08000000)typedef void (*iapfun)(void); //定义一个函数类型的参数.//设置栈顶地址//addr:栈顶地址__asm void MSR_MSP(uint32_t addr) { MSR MSP, r0 //set Mai原创 2022-04-13 11:32:54 · 5926 阅读 · 0 评论 -
STM32_使用Bootloade升级程序(IAP方式)
引言在我们把产品封装到了机器里面之后,当需要升级代码就变得很麻烦了,就要拆外壳,连接烧写器才能进行代码的升级,比如是买出去的产品,那更新就变得更加麻烦了,所以造成代码升级就变得非常麻烦。所以就有了一种新的更新程序的方法(IAP)。使用了该方式的单片机产品,只要在最开始预留了“SD卡”或者“串口接口”就能简单的进行程序的升级更新了。这里我们使用对“串口”更新程序的方式进行步骤讲解。一、思路简介首先我们理出一条思路,就如手机一样,我们在开机的时候长按某个键就能进行系统的升级一样,这里我们就按着这个思路,做原创 2022-03-01 14:58:52 · 12036 阅读 · 1 评论