- 博客(58)
- 资源 (6)
- 收藏
- 关注
原创 IAR 9.40 如何生成.hex文件
将Projecr.out改为 Project.hex,重新编译。可以看到生成的Project.hex文件。
2025-03-22 15:00:39
117
原创 Simplicity Studui V5 新安装后无法Product Updates
之前(2021年)在SiliconLabs官网下载了SSV5,安装包我也保存在硬盘了,最近换了台电脑安装SSV5后安装 SDK之前必须Product Updates,但死活安装不上,老是提示发生了错误。来来回回卸载安装几十遍,后来使用ChatGPT,提示我去官网下载安装包。2024年下载的安装包相比2021年的足足大了200M,且安装包也没有具体的小版本后,只有相对于SSV4区别的V5。这里显示也是2024,之前的SSV5显示是2021。至此,600M版本的SSV5安装更新比较顺利。
2024-05-24 08:11:15
310
原创 STM32CubeMX 调试单线半双工问题总结
一开始配置开漏输出,网上查阅其他博客讲要外接上拉电阻至3.3v,我调试出现只能接收数据无法发送数据。现改为推挽输出,下拉。(PB8不外接电阻至VCC或GND)
2023-11-30 15:11:15
493
原创 STM32CubeMX HAL F405 TIM1输出多路不同频率及占空比的方波(PWM)(输出比较模式)
TIM1的通道1、2、3输出同频率(8KHz)的PWM波形(占空比50%)TIM1的通道1输出50Hz的PWM波形(占空比50%)(包括增加死区时间效果)
2023-11-29 16:16:23
872
原创 STM32 LL库 TIM3定时器多通道捕获输入采集
TIM2输出1路PWM信号,使用1分3杜邦线接到TIM3的CH2-CH3-CH4通道进行捕获输入。
2023-11-15 10:57:50
1481
原创 STM32 定时器配置不当导致误差(精度)偏大的问题发现与解决
通用定时器TIM2/3/4/5,PWM输出1Khz的波形。示波器端查看效果如下:误差在5.64‰。示波器端查看效果如下:误差在0.2‰。
2023-10-25 16:05:59
2663
原创 STM32G0在使用BootLoader后应用程序不能正常跳转的解决办法
若看到没有定义USER_VECT_TAB_ADDRESS,则把上面一行的/* #defiene USER_VECT_TAB_ADDRESS */改为。现在整个APP的地址偏移0x3000,因此将VECT_TAB_OFFSET修改为0x3000后重新烧录运行程序功能都OK了。其中FLASH_BASE 就是默认程序起始地址0x8000000,VECT_TAB_OFFSET偏移地址默认为0;#defiene USER_VECT_TAB_ADDRESS即可。0x08003000 ~ 最大: app占用;
2023-01-16 09:03:00
2456
原创 STM32G0 HAL DMA USART空闲中断 接收到数据发送数据后无法再次接收的问题解决
发送完成进入发送完成回调函数,需要再次启动接收HAL_UARTEx_ReceiveToIdle_DMA。但必须在这个函数调用之前调用MX_USART2_UART_Init重新初始化,不然无法启动接收,主要是。主函数判断rx_done,然后调用HAL_UART_Transmit_DMA发送数据。初始化时调用HAL_UARTEx_ReceiveToIdle_DMA函数启动接收。这些标志位不调用MX_USART2_UART_Init初始化的话,都无法再次使能。
2022-10-11 13:57:06
2396
原创 STM32之USART:RXD和TXD管脚互换、接收和发送的电平极性反转、支持数据高位与低位反序发送或接收
在数据接收发送寄存器中,数据也是可以反转的,原来的0变为1,原来的1变为0,这和电平极性反转是类似。需要特别注意的是,在极性反转的时候,起始位和结束位也都反转了,所有的信号电平都反转;而在数据寄存器中只反转了数据位,其中也包含了校验位,没有反转信号的起始位和结束位的极性。默认的配置都是先发送或接收低位的信号(bit 0),实际应用中,通过USART_CR2中的MSBFIRST设置后,也可以让USART先发送或接收高位信号(bit 7/8),这一点在对数据进行反序的时候会经常用到它。
2022-10-11 08:42:46
4197
原创 STM32 HAL库的串口DMA使用HAL_UART_DMAStop()函数时无法再次接收到数据
当串口接收到数据后产生空闲中断,在中断函数里调用HAL_UART_DMAStop(),停止DMA接收数据,当再次接收数据时,调用HAL_UART_Receive_DMA()函数后无法接收数据。因此在使用 HAL_UART_Receive_DMA( );前需要再次调用MX_USART2_UART_Init();
2022-09-26 15:41:52
2379
原创 解决STM32G071之HAL库:UASRT使用DMA方式只进入中断一次
这里我使能的是串口空闲中断。使用CubeMX配置USART时,需要注意。这两处需要设置DISABLE.
2022-09-23 16:14:18
1034
原创 STM32 ContinuousConvMode和DiscontinuousConvMode的组合方式
ContinuousConvMode ,DiscontinuousConvMode这两个参数,乍一看只需要一个就好了,只要决定是不是连续转换就可以了。但实际上这两个参数是为了配置出更多的模式。公式:Vref = (1.2 / (adc_vref / 4095 * 3.3)) * 3.3。其中adc_vref为adc内部参考电压通道的数值。实际电压 = Vref * Vch / 4095。(Vch是通道采集的adc的值)
2022-09-20 15:15:16
2313
原创 如何使用Simplicity Studio V5开发基于EFR32BG22的蓝牙产品?
如何使用Simplicity Studio V5开发基于EFR32BG22的蓝牙产品
2022-08-15 15:41:18
2169
原创 AW9523B IIC驱动
/** Registers *//* 读为1,写为0 */#define AW9523B_KeyMode_DeviceAddre 0xB0 ///< Device Addres for AW9523B#define AW9523B_LedMode_DeviceAddre 0xB6 ///< Device Addres for AW9523B#define AW9523B_REG_ID 0x10 ///< id register#define..
2022-05-11 14:01:16
2138
5
原创 关于STM32G030F6的ADC采集不准的问题
先看一下我配置4个ADC通道,在不采集任何模拟电压时的状态:可以看出,这颗芯片采集的ADC值漂的有点厉害,如果对采集要求比较高的项目建议更换其他MCU。
2022-03-30 08:59:27
2084
原创 STM32 ADC 有关精度参数的理解(ET、EO、EG、ED、EL)
提到ADC,都会问是10位12位16位是什么意思?10位就是10位2进制的意思0-1023。12位就是12位2进制的意思0-4095。16位就是16位2进制的意思0-65534。也就是ADC的分辨率。比如说我们想采集一个3.3v的电压值,3.3v分成1024份表示和分成65536份表示,当然65536表示的精度更高。ADC里叫LSB,也就是1024 LSB。如何选择ADC我们在选择ADC的时候除了要知道他的分辨率,参考电压,还有速度之外还要知道一些ADC的性能指标。这些性能指标会影响你的采集精
2022-03-30 08:51:09
8829
原创 STM32 关于VDD、VSS、VDDA、VSSA、VREF+等标识解释
为了提高转换的精确度,ADC使用一个独立的电源供电,过滤和屏蔽来自印刷电路板上的毛刺干扰,ADC的电源引脚为VDDA,独立的电源地VSSA,如果有VREF- 引脚(根据封装而定),它必须连接到VSSA,确保共地。...
2022-03-29 15:24:37
3274
原创 Ublox GPS模块型号入门介绍
位于瑞士的定位和无线模块及芯片公司u-blox(SIX:UBXN)推出封装形式多模GNSS接收机模块MAX-7、NEO-7和LEA-7MAX-7、NEO-7和LEA-7系列模块以业界最低的功耗提供快速、准确、可靠的GLONASS和GPS定位。GPS和GLONASS模式的性能甚至优于目前市场上的GPS / GLONASS混合定位解决方案。所有u-blox7模块均可与之前的u-blox6和u-blox5模块管脚相兼容,可使现有设计实现轻松升级。每种模块均提供低成本的型号(如MAX-7C; NEO-7M)以及
2022-03-18 09:54:26
4003
原创 冒泡排序函数 C语言版本
void BubbleSort(uint16_t a[], uint16_t len) //由小到大排序{ uint16_t temp; for(uint16_t j = 0; j < len - 1; j++) { for(uint16_t i = 0; i < len - 1 - j; i++) if(a[i] > a[i + 1]) { temp = a[i]; a[i] = a[i + 1]; a[i + 1] = temp; }
2022-03-17 09:37:00
930
转载 u-center软件 使用
使用u-center软件时请先检查驱动是否安装完成(如CH340/PL2303),后连接数据线等https://blog.youkuaiyun.com/qq_34689354/article/details/115375744
2022-03-14 15:53:42
1514
原创 TTL(UART)信号和RS232信号 对比
UART可以用来已串行方式收发数据。UART是,以固定的某个速率(1200bps,9600bps,115200bps等),一次只能只传输一个bit比特位(所以叫做串行传输)这种串行通信的方法,有时候也被叫做TTL(Transistor-Transistor Logic)Serial。这种串行通信,在TTL级别上来说,对应的物理电平,始终是在0V和Vcc之间,其中常见的Vcc是5V或3.3V。其中:逻辑高电平==’1’==Vcc逻辑低电平==’0’==0V与此相对应的是你的(台式机,笔记本等)电脑中
2022-03-12 13:10:03
3897
原创 使用STM32CubeMx软件生成定时器中断时,定时器无法进入中断
由于自动生成的工程是没有启动定时器的,所以定时器是没有工作。在TIMx_Initx()函数里添加这边代码即可:HAL_TIM_Base_Start_IT(&htim3);
2022-03-09 14:45:24
3563
2
原创 STM32G0系列 ADC多通道采集时,部分通道采集数值为0的问题分析
STM32G0的 ADC 序列器配置成完全可配置时,只能使用通道 0-14,不能使用通道 15,16,17,18;所以在有使用到通道 15,16,17,18 的情况下,ADC 序列器要配置成不完全可配置。Sequencer 选项选择为:Sequencer not fully configurable 如果是多通道则 Discontinuous Conversion Mode 要使能。...
2022-03-03 15:40:24
2315
原创 关于STM32单片机 延时不准的解决办法
当你学习STM32单片机时,调用网上的延时函数点LED时若发现延时明显不对时请参看以下代码:void delay_init(u8 SYSCLK){ SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); fac_us=SYSCLK/8; //不论是否使用OS,fac_us都需要使用 fac_ms=(u16)fac_us*1000; //非OS下,代表每个ms需要的systick时钟数 } 改为如下:void de
2022-02-12 14:51:23
3841
3
原创 STM32F4 如何读取芯片96位的唯一设备标识符 (Unique Device ID)
96 位的唯一设备标识符提供了一个对于任何设备和任何上下文都唯一的参考号码。用户永远不能改变这些位。96 位的唯一设备标识符也可以以单字节/半字/字等不同方式读取,然后使用自定义算法连接起来。基址:0x1FFF7A10/*获取一个96位的CpuID,用数组保存;以全字(32位)读取;基地址:0x1FFF7A10;*/void GetSTM32_CpuID(uint32_t* CpuID){ //获取CPU唯一ID CpuID[0] = *(uint32_t*)(0x1FFF7A10);
2022-01-26 08:24:24
964
原创 STM32F4 如何读取芯片96位的唯一设备标识符 (Unique Device ID)
96 位的唯一设备标识符提供了一个对于任何设备和任何上下文都唯一的参考号码。用户永远不能改变这些位。96 位的唯一设备标识符也可以以单字节/半字/字等不同方式读取,然后使用自定义算法连接起来。基址:0x1FFF7A10/*获取一个96位的CpuID,用数组保存;以全字(32位)读取;基地址:0x1FFF7A10;*/void GetSTM32_CpuID(uint32_t* CpuID){ //获取CPU唯一ID CpuID[0] = *(uint32_t*)(0x1FFF7A10);
2022-01-26 08:19:20
1334
原创 详解 三种蓝牙协议栈方案
不同的应用场景有不同的需求,因此不同的应用场景对蓝牙实现方案的要求也不一样,从而催生不同的蓝牙架构实现方案,或者说蓝牙协议栈方案。架构1:host+controller双芯片标准架构蓝牙是跟随手机而诞生的,如何在手机中实现蓝牙应用,是蓝牙规格首先要考虑的问题。如果你仔细阅读蓝牙核心规格,你会发现规格书更多地是站在手机角度来阐述的,然后“顺带”描述一下手机周边蓝牙设备的实现原理。如大家所熟知,手机里面包含很多SoC或者模块,每颗SoC或者模块都有自己独有的功能。比如手机应用跑在AP芯片上(一般而言,An
2021-12-23 18:22:46
3138
STM32 LL库 使用定时器的比较中断 翻转多个IO,输出多路PWM波形(模拟PWM输出)
2024-07-18
STM32 TIM1输出3组同频率互补PWM波形和1个其他频率PWM波形
2023-11-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人