- 博客(36)
- 收藏
- 关注
原创 【STM32】G030单片机开启超过8个ADC通道的方法
本文介绍了STM32F103C8T6多路ADC配置方法,重点解决通道数量超过8个时的配置问题。通过CubeMX设置不完全配置模式实现10通道DMA采集,需注意开启ADC中断和校准功能。代码示例展示了ADC初始化、DMA采集和数据输出流程,特别提醒校准后ADC读数更准确,但内部温度采样会导致通道顺序错乱。主要使用HAL库函数实现ADC校准、DMA启动和数据串口输出功能。
2025-06-09 22:55:05
378
原创 【KiCad】立创封装导入KiCad
摘要:在KiCad设计PCB时,若遇到元件封装缺失,可通过立创商城快速导入。以SS12D06开关为例,先在立创商城搜索并下载封装文件,然后在KiCad的封装编辑器中导入并保存(CTRL+S)。最后修改原理图符号的封装关联即可。该方法简单高效,适用于KiCad中封装不足的情况。
2025-06-07 17:12:59
239
原创 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
229
原创 【STM32】STemWin库,使用template API
使用STemwinGUI库,基于STM32F411CEU6和ST7789屏幕芯片。采用外部API方式
2025-04-13 23:23:22
1098
原创 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
922
原创 【STM32】无源蜂鸣器播放音乐《千与千寻》,HAL库
工程使用STM32系列微控制器(STM32F4系列)作为主控芯片,连接无源蜂鸣器至GPIO端口,用于生成音频信号。开发工具包括STM32CubeMX(用于外设配置和初始化代码生成)以及Keil uVision或STM32CubeIDE进行代码编写、调试和烧录。硬件资源还包括时钟源(如72 MHz系统时钟)和ST-Link调试器。软件资源方面,项目使用STM32 HAL库进行硬件抽象,简化GPIO、定时器等外设的操作。音符数据通过MIDI文件提取或手动创建,包含每个音符的频率和时长信息。通过定时器PWM控
2025-01-09 22:52:38
1879
3
原创 【STM32】INA3221三通道电压电流采集模块,HAL库
INA3221 三通道、高侧测量、分流和总线电压监视器,具有兼容 I2C 和 SMBUS 的接口 datasheet (Rev. B)笔者所使用的INA3221是淘宝买的模块原理图模块的三个通道的电压都是一样,都是POWER。这个芯片采用的是高侧测量:每个通道有两个引脚,一个连接负载去给负载供电,另一个回来,回到GND经过笔者测量和观察,采样电阻的阻值应该是100mΩ。
2024-11-02 22:31:07
2975
原创 安装AURIX™ Development Studio软件,新建工程,基于英飞凌TC375
从英飞凌官网下载ADS软件,安装软件。新建工程并导入已有的LED闪烁工程,烧录示例代码实现点灯
2024-08-12 21:32:57
1275
1
原创 【STM32】状态机实现定时器按键消抖,处理单击、双击、三击、长按事件
众所周知,普通的机械按键会产生抖动,可以采取硬件上加电容来滤波,也可以考虑用软件来消抖。这里笔者分享一种基于状态机的按键消抖策略,可以实现单击双击三击长按事件的读取。按键时间也可以自己设置。这种方法需要消耗掉定时器资源,还有额外的RAM支出。如图矩形框内描述,最终键值的确定需要标志位和计数值,因此一个按键结构体应该这样定义//按键端口//按键PIN//按键类型//按压计数器//高电平计数器//按压标志//松手标志//按键键值。
2024-05-14 21:36:07
6947
12
原创 【STM32】硬件SPI+DMA驱动WS2812灯珠,基于HAL库
STM32F103单片机配合Cubemx软件,基于HAL库,利用SPI和DMA驱动ws2812灯珠,实现幻彩流水灯。笔者使用的WS2812是淘宝买的灯环,如下图所示留出来四个接口,分别是根据描述我们使用到的仅为DIN,VCC,GND5VPA7。
2024-01-27 22:47:16
8866
7
原创 【STM32】超声波测距模块HC-SR04用定时器输入捕获实现测距
使用STM32F103CBT6单片机的定时器输入捕获功能实现对超声波测距模块HC-SR04的距离读取,开启输入捕获中断,在中断中读取数值,进行处理。
2024-01-23 23:11:37
2461
2
原创 【STM32】DS3231硬件I2C读写,基于HAL库
DS3231,除了I2C通信引脚和电源引脚,剩余引脚并未引出,如下图所示。笔者的单片机为STM32F103CBT6,使用I2C2因此接线如下。
2024-01-18 22:58:03
3490
5
原创 【STM32】AT24C256硬件I2C读写,基于HAL库
STM32F103C8T6单片机使用HAL库配合CubeMX对AT24C256模块进行读写,存储容量256Kb即32KB(32K字节)。模块的原理图如下驱动协议是IIC,考虑开启硬件IIC进行通信,笔者选择使用IIC2。
2023-10-15 16:57:33
7669
9
原创 CubeMX配置STM32F103C8T6多路ADC配合DMA采集
基于HAL库的STM32F103C8T6单片机使用CubeMX进行配置,多通道ADC配合DMA进行数据采集
2023-10-10 21:31:37
4388
5
原创 STM32配合CubeMX硬件SPI驱动0.96寸OLED
基于STM32F030单片机的硬件SPI接口实现0.96寸OLED的显示,大大加快显示速率。结合CubeMX软件实现快速配置,减少开发过程中繁琐的操作,实现快速开发。接口封装,当切换通信协议时只需修改底层驱动即可,增加通用性
2023-10-02 16:40:10
4775
6
原创 Keil添加51单片机器件库和C51编译器
方法比较简单,打开STC-ISP软件,没有的话可以点击下面网址下载。安装到keil的安装目录下,一般来说会自动识别,点下一步即可。打开keil新建工程,发现已经安装STC器件包。点击下载后会提示提交表单,填写提交即可。首先去keil官网下载C51编译器。解压出来是一个exe,双击运行即可。出现C51评估版即安装完成。安装完毕后打开keil。
2023-09-09 12:02:13
3939
原创 【KiCad】自制STlink V2.1
前言笔者之前在淘宝买的和u盘差不多的STlink需要把一端接在电脑的USB口或者拓展坞上,另一边用排线连接目标板,很不方便,就打算自己制作一款STlink。
2023-09-08 19:00:29
816
原创 【DSP】新建工程,基于TMS320F28335
工程建好后是没有相应的支持库和驱动程序的,但是自动生成了一个cmd文件,就是上图的28335_RAM_lnk.cmd这个文件是用来分配存储器资源的,我们还需要一个cmd文件来对外设寄存器进行映射。进入c2000WARE的安装目录,选择f2833x文件夹,点击进入,里面有如下四个子文件夹,选择headers文件夹,点击进入。接下来添加相应的源文件。
2023-09-07 21:07:26
1912
2
原创 【DSP】建立工程模板,基于TMS320F28335
前面每次新建项目都新建CCS工程,比较繁琐且费时间。考虑制作一个工程模板,适用于大多数CCS项目开发。这样,在需要新项目的时候,复制一份模板即可。将common文件夹和headers文件夹下的两个include文件夹包含进来。制作模板的缺陷是不能用到什么文件添加什么文件,需要包含所有的外设源文件。添加文件夹,取名lib,用于存放TI官方的支持库。右键工程,属性,或者alt+enter也可以。继续添加common和headers文件夹。选择除了下面两个文件外的所有文件。右键common文件夹,导入。
2023-09-07 19:18:03
604
原创 【DSP】手把手新建CCS工程(蜂鸣器鸣叫),基于TMS320F28335
基于TMS320F28335开发板,下载官方库文件,新建ccs工程,实现蜂鸣器鸣叫
2023-08-31 21:54:09
1550
4
原创 使用0.96寸OLED显示中文字符串
的,要显示的话不能单纯地使用ASCII码表查找,要在自己取得的字库字模中选取。显示汉字和显示字符非常相似,其思路是一样的,不同之处在于汉字的编码是。,宋体取得的汉字一到九放入字库hz16.c中。显示中文字符串和显示字符串类似。容这四个属性,使用一个结构体定义。作为示例,将以字体大小为。编写显示中文字符串函数。
2023-06-02 01:12:47
2467
3
原创 STM32配合cubeMX硬件I2C驱动0.96寸OLED
有机发光二极管OLED)又称有机电激发光显示OELD)、有机发光半导体,OLED技术最早于1950年代和1960年代由法国人和美国人研制,其后由美国柯达及英国剑桥大学加以演进,日本SONY及韩国三星和LG等公司于21世纪开始量产,现在的市场都趋近于OLED但是在寿命上比LCD短。[来源请求]OLED(有机发光二极管)与TFT-LCD(薄膜晶体管液晶显示器)为不同类型的产品,OLED具有自发光性、广视角、高对比、低耗电、高反应速率、全彩化及制程简单等优点,但相对的在大面板价格、技术选择性 、寿命、分辨率色彩。
2023-05-29 13:33:14
6525
5
原创 STM32F030C8T6核心板
自制STM32F030C8T6核心板,板载两个用户编程LED灯,CH340NUSB转串口芯片,有20针牛角座用于官方版stlink连接下载,带i2c,spi接口
2023-05-20 20:15:00
1570
2
原创 STM32F1使用HAL库驱动DS18B20
DS18B20是一款单总线(one wire)芯片,因此其DQ引脚与单片机相连的IO口既要是输入也要是输出,cubeMX的初始化引脚设置只能选择其一,这里我们使用手动配置引脚。
2023-05-08 21:27:20
3318
14
原创 51单片机ADC0804的使用
效果为转动滑动变阻器,串口打印电压,若不转动,串口不产生输出。经过电压表检测,串口打印电压值与实际值误差约3%这里用到的串口打印函数,可以看我另一篇关于串口的博客,里面有完整代码。开始编写驱动文件adc0804.c和adc0804.h如下。我们需要ad转化的时候 ,分两步走,其中public.h文件内容如下。
2023-04-04 00:48:56
1247
原创 51单片机串口的使用
一般在调试上串口使用较多,也作为数据收发使用(Serial port),也称串行接口或串行端口,串行通信接口,COM接口,简称串口。主要用于式逐传输。常见的有一般应用的(使用 25 针或 9 针连接器)和应用的与。查看芯片手册这里笔者采用的是。
2023-04-02 01:40:32
969
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关注的人