- 博客(51)
- 收藏
- 关注
原创 EasyScale单总线数字调光
本文介绍了TPS61165芯片的单总线数字调光模式实现方法。该模式通过特定时序控制(逻辑0为300us低+100us高,逻辑1为100us低+300us高)实现32级亮度调节。文章详细说明了进入单总线模式的时序要求、延时函数实现、逻辑生成方法,并提供了完整的驱动代码,包括亮度设置、应答检测等关键功能。相比传统PWM调光,该模式可让芯片在配置后进入低功耗状态,适用于节能场景。文中还展示了主函数实现和逻辑分析仪采集的实际波形,验证了方案的可行性。
2025-12-21 23:32:40
469
原创 【STM32】基于TPS61165芯片的LED驱动电路
本文介绍了基于TPS61165 LED驱动芯片和STM32F103C8T6单片机的LED调光系统设计。系统采用12V输入,通过0.62Ω电阻设置322mA工作电流,利用PWM调光控制LED亮度。使用CubeMX配置20kHz PWM输出、按键输入和SPI接口(用于ST7789显示屏)。通过PA7引脚输出PWM信号控制亮度,也可切换为推挽输出实现LED开关控制。系统实现了按键调节PWM占空比(初始10%)的亮度控制功能,并可通过显示屏观察状态。
2025-12-15 00:02:45
437
原创 【STM32】SHT30温湿度芯片驱动
本文介绍了SHT30温湿度传感器的I2C通信实现,包括硬件配置和驱动开发。SHT30支持单次和周期采样模式,采样精度达温度0.1℃、湿度1.5%。文章详细说明了采样触发、数据读取、CRC校验和温湿度转换公式的实现方法,并提供了STM32CubeMX配置示例。最后展示了通过1.54寸TFT屏显示温湿度数据的主程序实现,包括单次采样和周期采样两种工作模式的选择。
2025-12-07 01:21:16
744
原创 【STM32】 数码管驱动
摘要:本文介绍了采用74HC138D和74HC595D芯片驱动共阴极数码管的电路设计方案。74HC138D作为3-8译码器控制位选,74HC595D通过串行输入并行输出方式实现段选控制。文章详细分析了两种芯片的工作原理和时序特性,包括74HC595D的数据移位、存储寄存器操作机制,并给出了显示数字"1"时的编码示例(0x60)。最后提出通过结构体数组存储显示内容,配合周期调用的位选函数实现动态扫描显示的方法。该方案为典型的数码管动态驱动实现方式。
2025-11-24 22:51:42
398
原创 【STM32】HDC2080温湿度计驱动
本文介绍了TI低功耗温湿度传感器HDC2080的应用开发。该传感器温度精度0.2°C,湿度精度2%,工作电压1.62-3.6V,睡眠功耗仅50nA,支持触发和自动两种测量模式。文章详细阐述了传感器配置方法,包括阈值设置、中断功能等,并提供了基于STM32L051K8U6的驱动实现,包含寄存器读写、温湿度采集等核心功能代码。特别强调了PCB布局中热隔离的重要性及纽扣电池供电时的低功耗优化方案。驱动代码采用模块化设计,方便集成到物联网或智能家居系统中。
2025-11-11 23:30:28
1059
原创 【英飞凌TC364】点亮LED灯
英飞凌单片机(TC364)GPIO端口配置与开发过程。主要内容包括:1) I/O端口(port)特性说明,输出模式下仍可读取电平状态,最多支持7种复用模式;2) 使用ADS开发环境新建工程,配置8个LED连接P2.0-P2.7端口,通过PinMapper工具生成配置代码;3) 详细展示了生成的引脚映射头文件和源文件,包含端口模式(推挽/开漏输出)和驱动能力配置;4) 主程序实现初始化GPIO、设置低电平点亮LED,并通过断点调试验证输出状态。最终成功烧录程序,8个LED均被点亮。
2025-10-30 23:25:07
246
原创 【STM32】墨水屏驱动开发
本文介绍了基于STM32F103CBT6单片机驱动墨水屏电子价签的开发过程。该墨水屏型号为GDEW029T5D,支持局部/全屏刷新,适用于静态显示场景。文章详细解析了硬件接口(4线SPI通信)、引脚定义及驱动开发流程,包括初始化、打点函数、字符/图形显示等核心功能实现。作者通过Cubemx配置SPI,编写了显示缓冲区管理、像素绘制、文本/图片显示等功能函数,并提供了测试代码展示数字、文字和图形的显示效果。最后还演示了局部刷新与全屏刷新的切换操作,为墨水屏应用开发提供了完整参考方案。
2025-10-06 22:05:57
1751
原创 【STM32】基于串口的bootloader
本文介绍了一个基于STM32F103的简易Bootloader实现方案。该Bootloader具备三大功能:擦除现有应用、接收新固件并烧写至Flash、跳转至新应用运行。开发中通过划分Flash空间,将Bootloader置于0x8000000起始地址,应用固件从0x8003800开始存放。通过0x8003400处的标志位判断是否需要升级,配套上位机实现固件传输和烧写控制。最终实验验证了该方案能正确完成固件升级,并实现启动跳转功能,为嵌入式设备远程更新提供了可行方案。
2025-09-22 20:04:26
1189
原创 【STM32】串口的阻塞、中断、DMA收发
基于STM32F103CBT6单片机,分别使用串口的阻塞收发函数、中断收发函数、DMA收发函数进行测试
2025-09-14 22:52:24
1535
原创 【STM32】G030单片机的窗口看门狗
窗口看门狗适合需要精确时序控制的场合,在一个受限的窗口期内喂狗,如果递减计数器还没有到窗口值就喂狗,会触发复位如果一直不喂狗,也会触发复位,和之前的独立看门狗的窗口选项有点类似需要指出的是,有些STM32单片机的独立看门狗是不具备窗口功能的,例如常见的F103C8T6递减计数器有7位,由于计数值 >= 窗口值 >= 64,则计数器最高位亦即T6就必定是1只要使能了窗口看门狗,WDGA就是1,右上方的与门是否输出1就取决于前一级的或门。
2025-08-28 21:56:35
1108
原创 【STM32】G030单片机的独立看门狗
STM32独立看门狗(IWDG)的功能与应用。通过使用32kHz LSI时钟、32分频和4095计数值,可实现4096ms的喂狗间隔。重点分析了窗口功能的作用:当设置窗口值为2000时,只有在计数值0-2000之间喂狗才有效,否则会触发复位。实验通过TFT屏幕显示计数值和外部按键喂狗,验证了窗口看门狗对系统时序的严格保护机制。文章还提供了CubeMX配置方法和工程文件下载链接。
2025-08-25 23:11:49
728
原创 【英飞凌】TC3XX单片机命名规则
TC3XX芯片型号解析:封装类型TC后数字末位表示封装形式(如TC377为BGA292);核心数量由TP标识(T为3核,P支持HSM,TC387为4核QP);后续数字代表PFLASH容量;F为固定类型标识;时钟频率统一300MHz;末尾字母区分封装类别;型号后缀含步进版本信息(如"AA")。该系列采用分级命名规则,通过型号可快速识别关键参数。
2025-07-06 12:55:18
618
1
原创 【STM32】一文搞懂INA226,实战应用,HAL库
本文介绍了基于INA226芯片的USB电压电流监测设备实现方案。INA226是一款支持高/低边测量的电流/功率监测芯片,内置乘法器可直接读取功率值。文章详细阐述了芯片的工作原理、寄存器配置方法,以及校准计算公式(当电流1A时,shunt电压0.012V,寄存器值4800)。具体实现包括I2C通信配置(设备地址0x80)、采样电阻选取(0.012Ω)、CubeMX硬件配置和驱动程序编写(包含寄存器读写、初始化和数据读取函数)。测试结果显示设备能准确监测电压电流,并可通过Alert引脚实现阈值报警功能(如设置1
2025-07-02 23:31:11
2853
2
原创 【STM32】0.96寸TFT屏幕ST7735驱动,HAL库
本文介绍了基于STM32G030F6P6单片机驱动ST7735屏幕的开发过程。通过SPI+DMA通信方式实现高效数据传输,详细讲解了硬件连接、CubeMX配置及驱动编写方法。重点包括:1) 屏幕初始化流程及寄存器配置;2) 针对不同旋转角度的显示偏移处理;3) 底层SPI通信函数实现;4) 基本绘图功能开发(清屏、画点、画线、填充等)。文章还对比了ST7735与ST7789驱动的异同点,并提供了完整的工程代码资源。该方案适用于240×240分辨率屏幕,采用DMA传输显著降低MCU负荷。
2025-06-22 22:38:17
1367
原创 使用python制作MIDI音乐数组
本文介绍了使用Python解析MIDI音乐文件生成单片机播放数据的方法。通过mido库读取MIDI文件中的音阶频率和持续时间参数,将音符信息转换为十六进制格式(note_on为0x90,note_off为0x80)。需要注意的是,该方法存在较多限制:多个音轨处理困难、解析数据混乱、对MIDI文件质量要求较高,且仅能处理单一音轨。作者建议后续开发专用上位机来优化解析过程,提升多音轨处理能力。该方法为STM32无源蜂鸣器播放音乐《千与千寻》提供了基础数据转换方案。
2025-06-16 23:10:38
423
原创 【STM32】G030单片机开启超过8个ADC通道的方法
本文介绍了STM32F103C8T6多路ADC配置方法,重点解决通道数量超过8个时的配置问题。通过CubeMX设置不完全配置模式实现10通道DMA采集,需注意开启ADC中断和校准功能。代码示例展示了ADC初始化、DMA采集和数据输出流程,特别提醒校准后ADC读数更准确,但内部温度采样会导致通道顺序错乱。主要使用HAL库函数实现ADC校准、DMA启动和数据串口输出功能。
2025-06-09 22:55:05
926
原创 【KiCad】立创封装导入KiCad
摘要:在KiCad设计PCB时,若遇到元件封装缺失,可通过立创商城快速导入。以SS12D06开关为例,先在立创商城搜索并下载封装文件,然后在KiCad的封装编辑器中导入并保存(CTRL+S)。最后修改原理图符号的封装关联即可。该方法简单高效,适用于KiCad中封装不足的情况。
2025-06-07 17:12:59
1061
2
原创 RGB888色彩格式转RGB565格式
RGB888转RGB565的色彩格式转换方法:通过位运算提取RGB888格式中R的高5位、G的高6位和B的高5位,然后重新组合成16位的RGB565格式。具体操作包括:用掩码提取各颜色分量(0xF80000提取R,0x00FC00提取G,0x0000F8提取B),通过移位调整位置(R右移19位,G右移10位,B右移3位),最后用位或运算合并。代码中ST7789_RGB565函数实现了这一转换过程,将32位RGB888输入转换为16位RGB565输出。
2025-06-02 22:36:51
704
原创 【STM32】STemWin库,使用template API
使用STemwinGUI库,基于STM32F411CEU6和ST7789屏幕芯片。采用外部API方式
2025-04-13 23:23:22
1206
原创 ST7789手册阅读,准备编写驱动
意思是说这个芯片支持262k色,可以用8/9/16/18位的并行接口,显示数据能存放在一个RAM里面,大小是240*320*18bits,外围电路简单。极限参数,可以看到这里写的最大供电电压是4.6V,所以如果接5V的话,很可能会出问题的接口电压功耗交流特性主要是一些通信时序参数,上图是8080接口手册里有很多这里截取笔者所使用的SPI的时序,4线串行(和3线串行的区别在于有无D/C)三线没有DC线,因此每次发送9位,用第一位表征是数据还是命令。
2025-04-10 21:10:15
2221
原创 【STM32】无源蜂鸣器播放音乐《千与千寻》,HAL库
工程使用STM32系列微控制器(STM32F4系列)作为主控芯片,连接无源蜂鸣器至GPIO端口,用于生成音频信号。开发工具包括STM32CubeMX(用于外设配置和初始化代码生成)以及Keil uVision或STM32CubeIDE进行代码编写、调试和烧录。硬件资源还包括时钟源(如72 MHz系统时钟)和ST-Link调试器。软件资源方面,项目使用STM32 HAL库进行硬件抽象,简化GPIO、定时器等外设的操作。音符数据通过MIDI文件提取或手动创建,包含每个音符的频率和时长信息。通过定时器PWM控
2025-01-09 22:52:38
2612
3
原创 【STM32】INA3221三通道电压电流采集模块,HAL库
INA3221 三通道、高侧测量、分流和总线电压监视器,具有兼容 I2C 和 SMBUS 的接口 datasheet (Rev. B)笔者所使用的INA3221是淘宝买的模块原理图模块的三个通道的电压都是一样,都是POWER。这个芯片采用的是高侧测量:每个通道有两个引脚,一个连接负载去给负载供电,另一个回来,回到GND经过笔者测量和观察,采样电阻的阻值应该是100mΩ。
2024-11-02 22:31:07
5078
原创 安装AURIX™ Development Studio软件,新建工程,基于英飞凌TC375
从英飞凌官网下载ADS软件,安装软件。新建工程并导入已有的LED闪烁工程,烧录示例代码实现点灯
2024-08-12 21:32:57
1714
2
原创 【STM32】状态机实现定时器按键消抖,处理单击、双击、三击、长按事件
众所周知,普通的机械按键会产生抖动,可以采取硬件上加电容来滤波,也可以考虑用软件来消抖。这里笔者分享一种基于状态机的按键消抖策略,可以实现单击双击三击长按事件的读取。按键时间也可以自己设置。这种方法需要消耗掉定时器资源,还有额外的RAM支出。如图矩形框内描述,最终键值的确定需要标志位和计数值,因此一个按键结构体应该这样定义//按键端口//按键PIN//按键类型//按压计数器//高电平计数器//按压标志//松手标志//按键键值。
2024-05-14 21:36:07
8293
12
原创 【STM32】硬件SPI+DMA驱动WS2812灯珠,基于HAL库
STM32F103单片机配合Cubemx软件,基于HAL库,利用SPI和DMA驱动ws2812灯珠,实现幻彩流水灯。笔者使用的WS2812是淘宝买的灯环,如下图所示留出来四个接口,分别是根据描述我们使用到的仅为DIN,VCC,GND5VPA7。
2024-01-27 22:47:16
10654
7
原创 【STM32】超声波测距模块HC-SR04用定时器输入捕获实现测距
使用STM32F103CBT6单片机的定时器输入捕获功能实现对超声波测距模块HC-SR04的距离读取,开启输入捕获中断,在中断中读取数值,进行处理。
2024-01-23 23:11:37
2734
2
原创 【STM32】DS3231硬件I2C读写,基于HAL库
DS3231,除了I2C通信引脚和电源引脚,剩余引脚并未引出,如下图所示。笔者的单片机为STM32F103CBT6,使用I2C2因此接线如下。
2024-01-18 22:58:03
3984
6
原创 【STM32】AT24C256硬件I2C读写,基于HAL库
STM32F103C8T6单片机使用HAL库配合CubeMX对AT24C256模块进行读写,存储容量256Kb即32KB(32K字节)。模块的原理图如下驱动协议是IIC,考虑开启硬件IIC进行通信,笔者选择使用IIC2。
2023-10-15 16:57:33
9120
9
原创 CubeMX配置STM32F103C8T6多路ADC配合DMA采集
基于HAL库的STM32F103C8T6单片机使用CubeMX进行配置,多通道ADC配合DMA进行数据采集
2023-10-10 21:31:37
5105
5
原创 STM32配合CubeMX硬件SPI驱动0.96寸OLED
基于STM32F030单片机的硬件SPI接口实现0.96寸OLED的显示,大大加快显示速率。结合CubeMX软件实现快速配置,减少开发过程中繁琐的操作,实现快速开发。接口封装,当切换通信协议时只需修改底层驱动即可,增加通用性
2023-10-02 16:40:10
5199
7
原创 Keil添加51单片机器件库和C51编译器
方法比较简单,打开STC-ISP软件,没有的话可以点击下面网址下载。安装到keil的安装目录下,一般来说会自动识别,点下一步即可。打开keil新建工程,发现已经安装STC器件包。点击下载后会提示提交表单,填写提交即可。首先去keil官网下载C51编译器。解压出来是一个exe,双击运行即可。出现C51评估版即安装完成。安装完毕后打开keil。
2023-09-09 12:02:13
4278
原创 【KiCad】自制STlink V2.1
前言笔者之前在淘宝买的和u盘差不多的STlink需要把一端接在电脑的USB口或者拓展坞上,另一边用排线连接目标板,很不方便,就打算自己制作一款STlink。
2023-09-08 19:00:29
917
原创 【DSP】新建工程,基于TMS320F28335
工程建好后是没有相应的支持库和驱动程序的,但是自动生成了一个cmd文件,就是上图的28335_RAM_lnk.cmd这个文件是用来分配存储器资源的,我们还需要一个cmd文件来对外设寄存器进行映射。进入c2000WARE的安装目录,选择f2833x文件夹,点击进入,里面有如下四个子文件夹,选择headers文件夹,点击进入。接下来添加相应的源文件。
2023-09-07 21:07:26
2273
2
原创 【DSP】建立工程模板,基于TMS320F28335
前面每次新建项目都新建CCS工程,比较繁琐且费时间。考虑制作一个工程模板,适用于大多数CCS项目开发。这样,在需要新项目的时候,复制一份模板即可。将common文件夹和headers文件夹下的两个include文件夹包含进来。制作模板的缺陷是不能用到什么文件添加什么文件,需要包含所有的外设源文件。添加文件夹,取名lib,用于存放TI官方的支持库。右键工程,属性,或者alt+enter也可以。继续添加common和headers文件夹。选择除了下面两个文件外的所有文件。右键common文件夹,导入。
2023-09-07 19:18:03
742
原创 【DSP】手把手新建CCS工程(蜂鸣器鸣叫),基于TMS320F28335
基于TMS320F28335开发板,下载官方库文件,新建ccs工程,实现蜂鸣器鸣叫
2023-08-31 21:54:09
1853
4
STM32基于TPS61165芯片的LED驱动电路
2025-12-15
STM32SHT30温湿度计驱动工程
2025-12-07
STM32芯片HAL库驱动HDC2080
2025-11-11
STM32墨水屏驱动工程
2025-10-06
STM32G030单片机窗口看门狗项目工程文件
2025-08-28
STM32G030单片机独立看门狗项目工程文件
2025-08-25
INA226实战应用,基于STM32单片机HAL库
2025-07-02
STM32单片机ST7735驱动
2025-06-22
STM32DS3231硬件I2C读写,基于HAL库
2024-12-22
STM32无源蜂鸣器播放音乐《千与千寻》
2025-01-09
STM32超声波测距模块HC-SR04用定时器输入捕获实现测距
2024-12-22
基于HAL库,状态机编程STM32F103单片机实现按键消抖,处理按键单击,双击,三击,长按事件 开启定时器中断处理
2024-07-18
STM32硬件SPI配合DMA驱动WS2812流水灯,基于HAL库
2024-01-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅