
STM32
小飞侠123!
这个作者很懒,什么都没留下…
展开
-
STM32F4xx系列定时器区别
STM32F4xx 系列控制器有 2 个高级定时器、 10 个通用定时器和 2 个基本定时器。原创 2023-07-21 13:18:50 · 164 阅读 · 0 评论 -
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 · 2475 阅读 · 1 评论 -
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 · 2408 阅读 · 0 评论 -
STM32之USART:RXD和TXD管脚互换、接收和发送的电平极性反转、支持数据高位与低位反序发送或接收
在数据接收发送寄存器中,数据也是可以反转的,原来的0变为1,原来的1变为0,这和电平极性反转是类似。需要特别注意的是,在极性反转的时候,起始位和结束位也都反转了,所有的信号电平都反转;而在数据寄存器中只反转了数据位,其中也包含了校验位,没有反转信号的起始位和结束位的极性。默认的配置都是先发送或接收低位的信号(bit 0),实际应用中,通过USART_CR2中的MSBFIRST设置后,也可以让USART先发送或接收高位信号(bit 7/8),这一点在对数据进行反序的时候会经常用到它。原创 2022-10-11 08:42:46 · 4273 阅读 · 0 评论 -
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 · 2419 阅读 · 0 评论 -
解决STM32G071之HAL库:UASRT使用DMA方式只进入中断一次
这里我使能的是串口空闲中断。使用CubeMX配置USART时,需要注意。这两处需要设置DISABLE.原创 2022-09-23 16:14:18 · 1044 阅读 · 0 评论 -
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 · 2403 阅读 · 0 评论 -
OLED显示如何理解 12*6、16*8、24*12等字符大小
OLED显示如何理解 12*6、16*8、24*12等字符大小原创 2022-07-15 14:59:32 · 7038 阅读 · 1 评论 -
串口空闲中断+DMA接收数据错位
DMA的接收缓存区长度一定要大于实际数据的最大长度。原创 2022-06-15 10:10:45 · 885 阅读 · 0 评论 -
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 · 2196 阅读 · 5 评论 -
关于STM32G030F6的ADC采集不准的问题
先看一下我配置4个ADC通道,在不采集任何模拟电压时的状态:可以看出,这颗芯片采集的ADC值漂的有点厉害,如果对采集要求比较高的项目建议更换其他MCU。原创 2022-03-30 08:59:27 · 2106 阅读 · 0 评论 -
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 · 8904 阅读 · 0 评论 -
STM32 关于VDD、VSS、VDDA、VSSA、VREF+等标识解释
为了提高转换的精确度,ADC使用一个独立的电源供电,过滤和屏蔽来自印刷电路板上的毛刺干扰,ADC的电源引脚为VDDA,独立的电源地VSSA,如果有VREF- 引脚(根据封装而定),它必须连接到VSSA,确保共地。...原创 2022-03-29 15:24:37 · 3295 阅读 · 0 评论 -
使用STM32CubeMx软件生成定时器中断时,定时器无法进入中断
由于自动生成的工程是没有启动定时器的,所以定时器是没有工作。在TIMx_Initx()函数里添加这边代码即可:HAL_TIM_Base_Start_IT(&htim3);原创 2022-03-09 14:45:24 · 3571 阅读 · 2 评论 -
STM32G0系列 Jlink无法识别下载调试的解决办法
JlinK识别不到STM32G0系列,建议用STLink。原创 2022-03-02 16:41:42 · 1855 阅读 · 0 评论 -
关于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 · 3891 阅读 · 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 · 978 阅读 · 0 评论 -
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 · 1349 阅读 · 0 评论