- 博客(194)
- 资源 (45)
- 收藏
- 关注
原创 STM32读取24位模数转换(24bit ADC)芯片ADS1231数据
ADS1231是一款TI公司出品的24位ADC芯片,常用于与称重传感器配合实现体重计的应用。这里介绍STM32读取ADS1231的电路和代码实现。ADS1231的特点为通过硬件管脚可控制两种采样速率(10SPS和80SPS),及可以控制芯片上下电以实现低功耗过程控制。
2023-05-29 13:41:33
3776
1
原创 C语言CRC-16 DNP格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同应用规范通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的应用规范校验函数,这里介绍DNP格式的CRC-16校验函数。生成多项式为x^16 + x^13 + x^12 + x^11 + x^10 + x^8 + x^6 + x^5 + x^2 + 1。
2023-05-22 08:29:00
720
原创 C语言CRC-16 CCITT-FALSE格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同应用规范通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的应用规范校验函数,这里介绍CCITT-FALSE格式的CRC-16校验函数。生成多项式为x^16 + x^12 + x^5 + 1由于反向算法更适合于有输入字节倒位序和输出整体数据倒位序的情况,这里只介绍正向算法。
2023-05-17 08:10:55
4345
1
原创 C语言CRC-16 CCITT格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同同应用规范通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的应用规范校验函数,这里介绍CCITT格式的CRC-16校验函数。生成多项式为x^16 + x^12 + x^5 + 1。
2023-05-15 08:12:22
4133
原创 C语言CRC-16 XMODEM格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同应用规范通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的应用规范校验函数,这里介绍XMODEM格式的CRC-16校验函数。生成多项式为x^16 + x^12 + x^5 + 1由于反向算法更适合于有输入字节倒位序和输出整体数据倒位序的情况,这里只介绍正向算法。
2023-05-10 08:08:07
2130
原创 C语言CRC-16 X25格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同应用规范通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的应用规范校验函数,这里介绍X25格式的CRC-16校验函数。生成多项式为x^16 + x^12 + x^5 + 1。
2023-05-08 08:17:06
2445
原创 C语言CRC-16 MODBUS格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同应用规范通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的应用规范校验函数,这里介绍MODBUS格式的CRC-16校验函数。生成多项式为x^16 + x^15 + x^2 + 1。
2023-05-03 08:34:52
1995
1
原创 C语言CRC-16 USB格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同应用规范通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的应用规范校验函数,这里介绍USB格式的CRC-16校验函数。生成多项式为x^16 + x^15 + x^2 + 1。
2023-05-01 11:56:31
1204
原创 C语言CRC-8 ROHC格式校验函数
CRC校验基于前处理和后处理的不同,由不同的协会标准推出了一些不同格式的版本。这里介绍CRC-8 ROHC格式的校验函数。
2023-04-27 08:13:04
996
1
原创 C语言CRC-8 ITU格式校验函数
CRC校验基于前处理和后处理的不同,由不同的协会标准推出了一些不同格式的版本。这里介绍CRC-8 ITU格式的校验函数。
2023-04-26 08:19:09
1287
原创 STM32 产生随机数方式
C语言的stdlib.h库里的srand(unsigned seed)和rand(void)函数,可以配合产生伪随机数。其中srand(seed)产生算法种子,再由rand()通过算法产生随机数,产生的随机数在宏定义RAND_MAX范围内。如果seed不变,则产生的随机数不变。这里介绍STM32 HAL库环境的随机数产生代码,采用STM32CUBEIDE开发环境,以STM32F103C6T6为例,通过USB虚拟串口将归一化随机数打印出,归一化随机数为0~1之间的浮点值。
2023-04-24 08:25:08
7360
原创 C语言CRC-32 STM32格式校验函数
CRC-32校验产生4个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同厂家通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的厂家校验函数,这里介绍STM32硬件CRC对应格式的CRC-32校验函数。生成多项式为x^32 + x^26 + x^23 + x^22 + x^16 + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x^1 + 1。
2023-04-20 08:19:33
4018
1
原创 C语言CRC-32 MPEG-2格式校验函数
CRC-32校验产生4个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同应用规范通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的应用规范校验函数,这里介绍MPEG-2格式的CRC-32校验函数。生成多项式为x^32 + x^26 + x^23 + x^22 + x^16 + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x^1 + 1。
2023-04-19 08:23:44
1346
原创 C语言标准CRC-32校验函数
CRC-32校验产生4个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。获得的校验码是随数据绑定获得。这里介绍CRC-32的64位计算方式和简化的32位计算方式。
2023-04-17 09:13:32
9093
原创 C语言CRC-16 MAXIM格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同厂家通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的厂家校验函数,这里介绍MAXIM格式的CRC-16校验函数。生成多项式为x^16 + x^15 + x^2 + 1。
2023-04-13 09:37:00
957
原创 C语言CRC-16 IBM格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同厂家通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的厂家校验函数,这里介绍IBM格式的CRC-16校验函数。
2023-04-12 08:20:27
3077
1
原创 C语言标准CRC-16校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。获得的校验码是随数据绑定获得。。这里介绍CRC-16的64位计算方式和简化的16位和8位计算方式。
2023-04-10 08:23:30
4653
原创 STM32 驱动4.3寸TFT LCD 触摸屏
STM32的FSMC接口是并行总线接口,可以用于驱动存储芯片如FLASH/SRAM等,也可以用于驱动并口LCD屏。触摸屏是在显示屏上覆盖一层触摸感应的外屏,有单独的接口输出坐标数据。这里以STM32F103VET6开发板连接4.3寸TFT LCD触摸屏,将正点原子的参考代码,移植到STM32CUBEIDE开发环境,实现TFT LCD屏的触摸效果显示。
2023-04-06 08:23:36
4979
2
原创 STM32 FSMC接口驱动4.3寸TFT LCD屏
STM32的FSMC接口是并行总线接口,可以用于驱动存储芯片如FLASH/SRAM等,也可以用于驱动并口LCD屏。这里以STM32F103VET6开发板连接4.3寸TFT LCD屏,将正点原子的参考代码,移植到STM32CUBEIDE开发环境,实现TFT LCD屏的显示。TFT LCD模块的管脚连接:其中:LCD_CS是总线片选,WR/CLK是写使能RD是读使能RS是指示总线上传的是命令还是数据(0:命令,1:数据)RST为复位信号BL为背光控制T_CS,T_PEN等部分为触摸屏的控制。对
2023-04-04 09:54:28
6147
10
原创 STM32驱动0.96寸TFT 彩色LCD模块显示
小型的彩色LCD模块如一款0.96寸模块,由ST7735S驱动芯片和LCD屏幕组成。STM32通过驱动ST7735S,从而实现对彩色LCD的驱动。这里将STM32通过硬件SPI驱动0.96寸TFT彩色LCD的参考代码,移植到STM32CUBEIDE开发环境。以STM32G030F6P6为例,可以用于采用ST7735S驱动芯片的其它尺寸LCD屏幕驱动。LCD的模块特性如下:模块的管脚介绍如下:STM32连接时,采用PA4管脚连接到模块的CS管脚, 采用PA6管脚连接到模块的DC管脚,采用PA12管脚连
2023-04-03 08:10:07
6824
3
原创 STM32 GPIO模拟多路I2C总线高阶操作: 同型号多设备并行访问
对于同类型多设备(I2C地址也相同)的场景,这里介绍模拟I2C总线高阶操作,实现同类型多设备的并行访问。前提条件为多个同类型同地址设备的配置过程和读写时序相同。
2023-03-29 10:16:48
2862
原创 STM32配置读取BMP280气压传感器数据
BMP280是在BMP180基础上增强的绝对气压传感器,在飞控领域的高度识别方面应用也比较多。BMP280和BMP180的区别:市面上也有一些模块:这里介绍STM32芯片和BMP280的连接和数据读取。
2023-03-27 08:08:06
6150
11
原创 STM32模拟SPI控制NRF24L01发送和接收
NRF24L01是一款2.4Ghz ISM频段无线收发芯片。NRF24L01模块可视为无需配对和连接型的WIFI或蓝牙模块。NRF24L01可工作于1发6收工作模式。一个NRF24L01模块工作于发送模式时,每次根据设定的接收端地址发送射频信号和数据;一个NRF24L01模块工作于接收模式时,可以接收来自1~6个发送端发来的射频信号和数据,对应内部的6个接收通道(Pipe)进行接收。一个NRF24L01模块可以根据场景进行发送和接收模式切换,从而分时进行发送和接收,此时对应半双工概念。这里介绍STM32模拟
2023-03-20 08:07:51
3233
1
原创 STM32实现UART-CAN融合式高速串口
STM32的UART硬件电路,在进行线接传输时,一般低于230400bps的波特率,因为单端信号传输的特性,限制了传输距离和传输速度。而在同一块PCB板內进行短距离UART传输,则可以达到2Mbps及至4Mbps的传输速率,所以STM32的UART接口,能支持配置为2M或4M波特率。
2023-03-13 08:38:49
5244
5
原创 STM32模拟SPI时序控制双路16位数模转换(16bit DAC)芯片DAC8552电压输出
STM32部分芯片具有12位DAC输出能力,要实现16位及以上DAC输出需要外挂DAC转换ASIC。DAC8552是双路16位DAC输出芯片,通过SPI三线总线进行配置控制输出。这里介绍通过GPIO管脚模拟时序进行控制的方式。
2023-03-06 08:11:52
6710
13
原创 STM32模拟SPI时序配置读取双路24位模数转换(24bit ADC)芯片ADS1220采样数据
TI公司的双路24位模数转换芯片ADS1220具有比较丰富的模式配置,双路差分输入采样也可以配置为4路单端输入信号采样。有多种参考电压源可选,内部增益(从1倍到128倍)和输出率(可达到2K/s)可配置,模拟电压和数字电路电压可单独设置等等。这里介绍STM32访问和读取ADS1220采样数据的代码实现,采用模拟SPI时序的方式。
2023-03-01 08:02:16
4890
原创 STM32模拟SPI协议获取24位模数转换(24bit ADC)芯片AD7791电压采样数据
STM32大部分芯片只有12位的ADC采样性能,如果要实现更高精度的模数转换如24位ADC采样,则需要连接外部ADC实现。AD7791是亚德诺(ADI)半导体一款用于低功耗、24位Σ-Δ型模数转换器(ADC) ,适合低频测量应用,提供50 Hz/60 Hz同步抑制。这里介绍基于AD7791的24位ADC采样实现。
2023-02-20 08:32:35
5977
3
原创 STM32配置读取双路24位模数转换(24bit ADC)芯片CS1238数据
CS1238是一款国产双路24位ADC芯片,与CS1238对应的单路24位ADC芯片是CS1237,功能上相当于HX711和TM7711的组合。
2023-02-13 09:24:39
5520
1
原创 STM32读取24位模数转换(24bit ADC)芯片HX711数据
HX711是一款国产低成本24位ADC芯片,常用于与称重传感器配合实现体重计的应用。这里介绍STM32读取HX711的电路和代码实现。
2023-02-06 09:14:43
6935
2
原创 STM32读取24位模数转换(24bit ADC)芯片TM7711数据
TM7711是一款国产低成本24位ADC芯片,常用于与称重传感器配合实现体重计的应用。这里介绍STM32读取TM7711的电路和代码实现。
2023-02-02 09:29:28
5943
原创 STM32模拟SPI总线读写RFID模块RC522
RC522是一款NXP 公司的支持ISO14443A协议的高频(13.56MHz)RFID射频芯片。RFID有ID和IC两种卡应用类型,RC522属于IC卡的应用类型。NFC则属于增强的IC卡类型,支持双向通信和更多类型的协议。ID卡在制卡时写入一次后,以后只能读取不能写入,常见的Mango卡工作频率为125KHz,所以也叫低频卡,支持ISO 18000-2协议。常见的ID卡右下角有一串打印数字(由ID前十位和ID后八位组成):IC卡在发卡时写入信息后,以后通过密码可以读取也可以写入。
2023-01-16 09:08:02
3990
原创 STM32 TIM PWM高阶操作:刹车及状态约束
刹车及状态约束是STM32 TIM PWM控制里面比较复杂的一部分,涉及到PWM波形产生前,中,后的管脚状态输出。这里先引入两个描述,一个是“半高阻”,意思是STM32管脚输出高阻时,内部上拉或者下拉仍然有效。一个是“全高阻”,意思是STM32管脚输出高阻时,内部上拉或者下拉也被断开,是完全的高阻态输出。
2023-01-09 09:11:59
9381
6
原创 STM32 TIM PWM中阶操作:互补PWM输出
H桥相当于两组推挽半桥组成的电路,负载跨在中间,在一个半周期左上臂到右下臂(Arm A)导通,在另外一个半周期右上臂和左下臂(Arm B)导通,从而经过负载的是交流信号,可以驱动超声波雾化片。在一个上臂和一个下臂导通时,另外的一个上臂和下臂必须处于关闭状态,否则会产生短路冲击。H桥实现器件有两种,一种用三极管来实现,一种用MOS管来实现.原理是相似的,只是对电流的控制方式不同,一种是流控,一种是压控。
2023-01-03 09:18:42
11564
5
原创 STM32 TIM PWM初阶操作:非互补PWM输出
STM32 TIM可以输出管脚PWM信号适合多种场景使用,功能包括单线/非互补PWM输出,双线/互补PWM输出,以及死区时间和刹车控制等。
2023-01-01 13:40:07
2335
4
原创 Pegasus Serial Port Tool @ Simplicity Version 串口测试工具简化版发布
此简化版工具用于串口测试,只支持最常用的一种模式:1个起始位8个数据位0个校验位1个停止位不支持高级功能如RTS/CTS等波特率设置范围2400bps - 230400bps使用帧显示模式(数组显示)时接收帧间隔建议大于等于100ms。
2022-12-21 14:38:37
803
原创 STM32多通道ADC采样获取MCP9701模拟温度传感器温度输出数据
市面上常见的模拟温度传感器有TI的LM35系列,然后使用中并不简便。MCP9701是Microchip公司推出的相似的模拟温度传感器,管脚兼容LM35,都是三个管脚: 一个Vs, 一个GND, 一个Vout温度模拟电压输出。MCP9701相比于LM35,使用更方便。
2022-11-15 09:20:24
3342
6
原创 STM32驱动全彩LED灯模块WS2812
WS2812全彩LED灯模块系列,可以进行级联实现灯带的效果,MCU端通过一个管脚可以控制所有级联的LED灯的不同发光颜色显示。
2022-10-24 07:24:36
18008
11
原创 Electron使用滑动开关bootstrap-switch的方式
当需要在HTML应用包括Electron使用滑动开关时,可以采用bootstrap的ootstrap-switch插件,这里简单记录使用方式。
2022-10-18 14:14:07
972
原创 STM32 纳秒级延时 (ns delay) 的指令延时实现方式及测定
STM32的主频一般在几十到几百MHz,因此其时钟周期在纳秒级,如果要实现纳秒级延时,除了用定时器方式实现,可以用如下两种指令延时方式。但是需要注意,这两种方式不能直接表达延时的具体时长,随MCU的主频其延时时长会变化,需要经过测定方式来了解具体时长。
2022-10-17 09:47:20
13186
7
原创 STM32 GPIO模拟多路I2C总线中阶操作
对于I2C设备地址相同的多个设备,则需要用多路并行I2C进行访问,通常硬件功能模块资源有限,就要通过GPIO模拟多路I2C总线实现。
2022-10-03 09:51:30
4613
5
STM32F401RCT6-RTOS-EXAMPLE9.rar
2024-11-18
STM32F401RCT6-RTOS-EXAMPLE8.rar
2024-11-04
STM32F401RCT6-RTOS-EXAMPLE7.rar
2024-10-21
STM32F401RCT6-RTOS-EXAMPLE6.rar
2024-10-08
STM32F401RCT6-RTOS-EXAMPLE5.rar
2024-09-23
STM32F401RCT6-RTOS-EXAMPLE4.rar
2024-09-02
STM32F401RCT6-RTOS-EXAMPLE3.rar
2024-08-19
STM32F401RCT6-RTOS-EXAMPLE2.rar
2024-08-12
STM32H743VIT6-QSPI-SRAM-VTI7064.rar
2024-07-23
STM32F401RCT6-RTOS-EXAMPLE1.rar
2024-07-23
STM32H750VBT6-UDISK-FOR-QSPI-W25QXX-FATS.rar
2024-06-26
STM32H750VBT6-UDISK-FOR-SPI-W25QXX-FATS.rar
2024-06-12
STM32F401CCU6-UDISK-FATS.rar
2024-05-13
STM32F401RCT6-SDIO-SDCARD-FATS.rar
2024-04-22
STM32F103VET6-SDIO-SDCARD-FATS.rar
2024-04-22
STM32F103VET6-SDIO-SDCARD.rar
2024-04-08
STM32F401CCU6-SPI-SDCARD-FATS.rar
2024-03-25
STM32F401CCU6-SPI-SDCARD.rar
2024-03-11
STM32H750VBT6-QSPI-FLASH-FATS-W25QXX.rar
2024-02-26
STM32H750VBT6-QSPI-FLASH-W25QXX.rar
2024-02-01
STM32F401CCU6-SPI-FRAM-MB85RS2M-FATS.rar
2024-01-15
STM32F401CCU6-SPI-FRAM-MB85RS2M.rar
2024-01-02
STM8S103F3P6-SoftwareUART-TXRX-byTIM.rar
2023-12-19
STM8S103F3P6-SoftwareUART-TXOnly.rar
2023-12-19
STM32F401CCU6-SPI-FRAM-MB85RS16.rar
2023-12-04
STM32H750VBT6-SPI-FLASH-FATS-W25QXX.rar
2023-11-20
STM32H750VBT6-SPI-FLASH-W25QXX.rar
2023-11-04
STM32F401CCU6-USB-UART.rar
2023-10-20
STM32F103C6T6-USB-UART.rar
2023-10-20
STM32F401CCU6-I2C-FRAM-MB85RC1M-FATS.rar
2023-10-07
STM32F401CCU6-I2C-FRAM-MB85RC1M.rar
2023-09-25
STM32F401CCU6-I2C-FRAM-MB85RC16.rar
2023-09-03
STM32F401CCU6-I2C-EEPROM-ZD24C1MA-FATS.rar
2023-08-16
STM32F401CCU6-I2C-EEPROM-ZD24C1MA.rar
2023-07-31
STM32F401CCU6-I2C-EEPROM-AD24C02.rar
2023-07-14
STM32F401RCT6-MCP41010.rar
2023-06-30
STM32F103C6T6-TCS34725-TCS34727.rar
2023-06-25
STM32F103CBT6-HDC1080.rar
2023-06-23
STM32F401CCU6-ADS1271.rar
2023-06-16
STM32G030F6P6-TM8211.rar
2023-06-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅