- 博客(37)
- 资源 (3)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 STM32 LCD HAL库 HAL_LCD_Write函数使用说明
HAL_LCD_Write(LCD_HandleTypeDef *hlcd, uint32_t RAMRegisterIndex, uint32_t RAMRegisterMask, uint32_t Data);函数参数解析:LCD_HandleTypeDef *hlcd 初始化的LCD句柄指针uint32_t RAMRegisterIndex RAM寄存器,COM口寄存器uint32...
2019-03-13 09:28:20
6341
5
原创 littleFS 出现打开文件失败处理办法
如果err == -84则代表文件系统损坏,就需要重新格式化文件系统。littleFS 出现打开文件失败。
2024-04-16 17:32:43
415
原创 Linux 查看日志
的日志,你需要具有 root 或 sudo 权限,因为这些日志通常只对特权用户可见。你可以通过滚动浏览输出来查看完整的日志。这个命令会显示内核环缓冲区中的日志消息,包括使用。这些文件包含了内核和系统消息的日志,其中包括使用。你可以通过以下方法查看。这个命令会显示内核消息日志,包括使用。在 Linux 中,内核日志使用。希望这能帮助到你找到。
2023-08-17 10:42:01
1254
1
原创 STM32 HAL GPIO介绍
在GPIO初始化之后,可以通过HAL_GPIO_ReadPin()和HAL_GPIO_WritePin()函数来进行GPIO的读写操作。其中,HAL_GPIO_ReadPin()函数用于读取GPIO输入的电平值,而HAL_GPIO_WritePin()函数用于向GPIO输出电平值。在STM32 HAL库中,GPIO的初始化函数为HAL_GPIO_Init()。该函数的参数包括GPIO端口号、引脚号、模式(输入/输出)、输出类型(推挽/开漏)、输出速度(低/中/高)和上拉/下拉配置等等。
2023-03-29 15:40:10
500
原创 STM32 HAL 提示初始化文件没有声明
使用cubemx生成工程后,再添加的功能模块,首先会提示一些结构体找不到,经过查找发现是宏定义没有打开,当你在STM32xxxx_hal_conf.h中打开相应的宏后,提示初始化函数未声明,这时需要把对应功能模块的.c文件添加进工程进行编译。...
2020-11-25 21:23:22
415
原创 STM32L4 Timer计数偏快
在配置STM32L4的Timer时钟为80M时发现,每秒出现在计数器内的count值和实际应该出现的值不一致,快了5-6倍。具体原因现在还不知道,经过尝试发现,在配置timer的时钟为40M时,没有这个问题,很稳定。可能跟外设允许的频率有关系吧。...
2020-07-17 14:45:01
474
原创 IAR项目工程中使用变量定义数组长度或者使用printf(“%.*s“)输出固定长度的字符串的额外配置
需要在工程的配置中打开Allow VLA选项
2020-07-06 15:11:45
704
原创 easyLogger中文乱码
产生原因:编码格式问题,使用UTF-8编码源文件就不会有这个问题。解决方案1:使用notepad++打开乱码文件,在菜单栏选择编码,选择转为UTF-8编码。再次编译文件就没有乱码问题了
2020-06-29 14:26:24
524
原创 STM32 局部变量允许的最大长度
局部变量(定义在函数内部的变量)存放在CSTACK中,所以局部变量允许定义的大小不应大于设置的CSTACK大小。否则会出现死机或者程序执行异常现象。
2020-06-19 17:16:06
1611
原创 STM32 以固定频率进行DMA连续转化
1,选择ADC 和 通道2,配置ADC 参数关闭连续转换,开启扫描,开启非连续转换,使能DMA连续转换,以一个组为单位进行转换。设置转换的通道数,设置触发源,设置触发边沿,设置每个通道的参数。3,配置DMA选择DMA的模式为循环模式...
2020-06-19 11:20:24
947
原创 STM32 OSPI四线读取 SST26VF064B ID
读取时序代码: OSPI_RegularCmdTypeDef sCommand; HAL_GPIO_WritePin(OCTOSPIM_P1_NSS1_GPIO_Port, OCTOSPIM_P1_NSS1_Pin, GPIO_PIN_RESET); sCommand.OperationType = HAL_OSPI_OPTYPE_COMMON_CFG; sCommand.FlashId = HAL_OSPI_FLASH_ID_1; sCommand.Instru
2020-06-11 16:33:47
4277
2
原创 STM32 DAC 利用DMA和timer进行连续转化
话不多说,直接上配置。开发环境,CubeMX5.6.1+IAR8.40.2+STM32L476RGDAC channel1 (PA4)Timer2触发详细配置如下:DAC:DMA:Timer:在初始化的时候,进行了DAC校准:HAL_DACEx_SelfCalibrate(&hdac1, &sConfig, DAC_CHANNEL_1);这个的转化时间,大概是7ms左右。Timer DAC DMA 初始化后,调用HA...
2020-06-04 00:29:42
1045
原创 EC20 透传模式的进入,退出,返回
进入:通过创建链的命令直接进入透传模式,最后一个2代表需要进入的模式“AT+QIOPEN=1,0,“TCP”,“xx.xx.xx.xx”,8000,0,2”,如果一开始没有使用这条指令,可以使用"AT+QISWTMD=0,2(接收模式)"指令切换过去。在非透传模式下,同样的这条指令也可以帮助我们切换到另外两个模式。退出:在透传模式下发送“+++”,退出透传。 此命令没有回车返回:发送"ATO"或者"AT+QISWTMD" 重新进入透传模式...
2020-06-03 14:09:04
4289
8
原创 STM32 TIMER触发的详细流程
TIMER启动-----》到达预装载值-----》清除CNT,重新开始计数------》触发中断。验证方式,在TIMER的中断里查看CNT的值,我主频4M,timer是1MHz的频率,中断里TIMER的CNT为4。如果是先进中断才清除CNT,则CNT的值应为我设置的预装载值。如果是中断后才开始的重新计数,CNT的值应该为0或者预装载值。所以综上所述,TIMER是先清零,重新计数,然后再进的中断。...
2020-05-29 19:10:21
1034
原创 硬件调试---模拟I2C
模拟I2C在开发中使用的很多,尤其是在51和早期的STM32程序中(网上流传着一种说法:那就是STM32 I2C有问题,实际上我用的过程中并没有发现)。好的,那么问题来了,我在调试的过程中贪图省事,把模拟I2C中设置SDA输入输出的设置给省了,导致读写寄存器正常,但是连续读取一些数据的时候却出了问题,只能读取很少的一部分数据,困扰了两天,终于在示波器的帮助下找到了问题。那些异常的波形就是没有设置SDA引脚为输入导致的。总结:遇到串行通信问题,示波器绝对是个好帮手,还有就是真的不能偷懒,改写的还是要写。
2020-05-28 23:23:08
297
原创 EC20 透传模式下的意外情况
EC20进入透传模式后,发送失败,或者远程服务器关闭会报错误信息,并且自动退出透传模式。远程服务器正常(或意外终止程序)关闭服务:NO CARRIER+QIURC: "closed"模块并不会因为自身网络情况差,或者其他原因断开链接而报错,即使是推出透传模式,使用ATO重新进入透传,提示的还是connect。...
2020-05-27 15:16:17
2363
原创 傅里叶变换的物理意义及算法(转)
傅里叶变换的物理意义:https://blog.csdn.net/iloveyoumj/article/details/53308142
2020-05-20 14:15:05
306
原创 STM32 SD卡使用SDIO DMA卡死解决办法
在使用SDIO操作SD卡时,如果底层BootLoader也有操作SDIO,则可能(一般是SD卡出现质量问题的时候)会出现应用层一直卡死在SDIO的DMA中断里,解决办法就是在初始化的时候将相关的寄存器清空。...
2020-04-14 11:03:33
4003
原创 STM32 CubeMX中FreeRTOS的默认配置
内存分配方式:heap4总共有5种,heap4是通用型的**节拍的速率:**1000HZ.抢占:默认是开启的如果这个不开启,则要为每个任务配置不同的优先级特别要注意的是:所有的FreeRTOS阻塞都会引起任务切换。包括osDelay() 、信号量获取和释放、消息队列的读写、邮箱等。...
2020-04-02 11:01:32
247
原创 FreeRTOS临界区操作
进入临界保护(支持嵌套):taskENTER_CRITICAL();退出临界保护(支持嵌套):taskEXIT_CRITICAL();中断里进入临界保护(支持嵌套): taskENTER_CRITICAL_FROM_ISR();中断里退出临界保护(支持嵌套): taskEXIT_CRITICAL_FROM_ISR( x );进入临界保护的定义代码:从中可以看出,uxCritical...
2020-04-02 10:40:29
958
原创 STM32 获取系统重启原因(STM32F407VET6为例)
在stm32f4xx_hal_rcc.h中,有如下重启的原因#define RCC_FLAG_BORRST ((uint8_t)0x79)#define RCC_FLAG_PINRST ((uint8_t)0x7A)#define RCC_FLAG_PORRST ((uint8_t)0x7B...
2020-01-16 14:55:34
3851
4
原创 Qt CRC16校验中,有时候电脑计算的CRC值和单片机中计算的值不一样
在项目中为了图省事,想要直接使用QByteArray 的data方法,将CRC16校验中的校验数据类型,从unsigned char* 变成了char *.结果导致了只要校验数据中有负数就会出现和单片机中的检验数据不一样。主要原因是单片机中的unsigned char 和char 是一样。而电脑是区分的,所以这也就导致了即使我在单片机那一端也将校验数据的数据类型改为char *,也一样会出现错误。...
2019-07-12 14:17:33
1597
原创 STM32 串口空闲中断 DMA方式 cubeMX环境下
我这里使用的芯片是STM32F103RBT61,正常配置一个串口,勾选uart4,2,为串口配置一个接收的DMA3,打开串口中断4,生成软件,并在软件里开启串口空闲中断5,在串口中断函数里,检测空闲中断,获取接收的字符串长度这里面需要注意的是,DMA的剩余长度是指,假如我们一开始调用HAL_UART_Receive_DMA函数指定的接收长度是100,现在...
2019-07-01 13:41:11
1041
原创 STM32L4低功耗模式下LCD唤醒时闪屏
正常情况下,STM32从低功耗模式下唤醒时,都需要重新初始化时钟,但是如果LCD使用的时钟被初始化,则就会出现闪频的现象,只会闪一下,然后再迅速回复正常。解决办法,使用和RTC一样的时钟源,例如使用LSI,这样在唤醒时,不初始化LSI时钟,系统也能正常运行。...
2019-03-29 17:20:41
1093
原创 STM32L4 浮点运算 注意事项及问题
1,问题:在项目中使用double类型的数据进行浮点运算时,出现运算时间长,运算为0,或者错误的情况。2,解决方案方法1:如果用的浮点不是很大的话,可以将double转为float,方法2:将数据转为整形,然后再进行计算,最后再将数据转为浮点型由于我在项目中使用的浮点数不是很大,所以优先使用了方法1。3,后续不过引起这个问题的具体原因,我目前还不是很清楚,所以只能先这样解决了,只能等后...
2019-03-20 10:19:03
2691
原创 STM32 多通道ADC注意事项
1,在使用ADC多通道时,如果使用了DMA,则DMA的模式一定要配置为Circular模式,否则只会转化一次。至于单通道有没有这个问题,就要等到后面有时间的时候再验证了。...
2019-03-20 10:10:30
917
原创 STM32L4 串口误进IDLE中断
我们在接收不定长数据时,常常会使用IDLE中断,但是在初始化完uart后,立即使能IDLE中断会马上进入IDLE中断,这个时候需要在初始化完uart后进行适当的延迟。...
2019-03-15 13:42:28
1224
原创 STM32 HAL CubeMX断码屏配置与使用
STM32L476 LCD直接驱动断码屏使用注意事项1,配置:1.1对于偏压,电路上可以不用做处理,直接在软件里配置即可1.2High Drive 选项如果不勾选,可能会造成,点亮SEG上的多条线,同一个 EG的其他线也会被点亮。2,使用在stm32l4xx_hal_lcd.h中包含以下操作函数//初始化函数 如果使用cubemx配置工程, 这个可以不用关心,软件会帮我们...
2019-03-13 09:00:31
2526
stm32l432datasheet
2020-06-22
STM32L476+HAL+DAC+DMA+Timer
2020-06-04
STM32L4寄存器手册
2019-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人