
笔记
guoguo123a
这个作者很懒,什么都没留下…
展开
-
调试问题集
1、STM32F4外部晶振只支持4-25M,如果用40M晶,配置外部晶振,会导致单片机工作不正常,程序卡死在SystemClock_Config初始化时钟函数里,而且如果不断电重新上电,就算程序改为使用内部时钟,也无法配置成功,只有断电后才能修改时钟配置。2、HAL库的有一些DMA初始化会放在外设初始化后面,导致外设的DMA工作不正常,需要手动将DMA初始化放在最前面。3、HAL库的串口相关函数有lock和unclok函数,需要手动注释掉,否则可能会导致串口收发冲突,产生bug。4、TLV563原创 2022-02-22 13:44:43 · 1448 阅读 · 2 评论 -
CBUEMX STM32G4系列定时器计数方向变化中断及输出配置
STM32G4系列的定时器计数方向,会记录在TIMx_CR1寄存器的DIR bit,可以通过查询去读该寄存器,或者使能中断,每次计数方向改变都会产生中断,并且支持将该bit位的值直接输出到外部IO上。在做正交解调QEC等功能都时候比较有用。下面是用CUBEMX将换向信号输出到io上的配置:调用HAL_TIM_OC_Start(&htim1,TIM_CHANNEL_3)即可配置换向中断,使能TIM1_TRG_COM_TIM17_IRQn,调用__HAL_TIM_ENABLE_IT(&am原创 2021-12-06 15:37:27 · 401 阅读 · 0 评论 -
CUBEMX STM32 L4定时器正交解调模式配置简要说明
正交解调模式用于判断两路方波相对位置,在cubemx中的配置如下图说明:1、调用HAL_TIM_Encoder_Start_IT开启2、开启后定时器自动计数,两路输入的每个上升或者下降沿都会计数,即一个周期计数4,如果t1比t2先,计数加,否则计数减,可以减到负值3、中断触发是由上面的配置的极性决定的,不管有没有配置中断,不影响计数,可以修改中断回调函数HAL_TIM_IC_CaptureCallback4、可以随时通过__HAL_TIM_GetCounter读取计数的值...原创 2021-10-27 16:30:46 · 456 阅读 · 0 评论 -
CUBEMX STM32L4系列内部flash读写
1、使用的芯片flash是256k,地址从0x08000000开始,到0x08040000,做测试用,从0x08030000开始。写之前必须要擦除那一整页,才能成功写入数据。每页2k,地址偏移0x30000,即第96页,具体配置如下图原创 2021-10-27 16:12:54 · 1184 阅读 · 0 评论 -
keil program size含义
Code:局部变量中初始化了的RO_data:全局加了const的变量RW_data:全局变量,static变量不论有没有初始化(默认初始化为0)ZI_data:局部未初始化变量注意字节对齐,stm32是四字节对齐原创 2021-08-19 14:10:47 · 275 阅读 · 0 评论