![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式开发
花开花落的个人博客
当你的才华撑不起你的梦想时,唯有读书。当你的无法为梦想买单的时候,唯有暴富。シ❤゛甜虾。
展开
-
STM32H7 Backup SRAM数据不更新问题记录
项目用到Backup SRAM,如果只写一次的话,设备不重启或掉电读取没有问题,如果设备重启或者掉电,输入没有更新,总结就是最后一次写入数据没有更新在设备缓存中,如果换成写10个数据,第10个数据没有写入成功,前9个都没有问题,临时解决方法就是多写一个数据。原创 2024-03-23 11:50:13 · 467 阅读 · 0 评论 -
STM32H7 RTC及PC13问题
而我就行没有设置这两个值,导致time.DayLightSaving和time.StoreOperation不知道是什么值,默认是0,但是,恰巧他不是0,而是随机值,果断加一个默认值,问题完美解决,此文章仅仅只是提醒自己和他人,切记切记。程序加了RTC时间过后,发现原本的RTC定时唤醒中断也不好使了,开始以为是PC13入侵检测引脚问题,经过测试,发现了一个大问题,当使用。原创 2023-11-27 14:36:39 · 994 阅读 · 0 评论 -
使用JLink烧写(HEX)程序
烧写成功之后,此时程序还没有运行,点击Target->Manual Programming->Start Application,或者按快捷键F9,程序才开始运行,或者按复位键也可以让程序运行。JLink安装位置默认都是C:\Program Files\SEGGER\JLink。找到JFlash.exe并运行,打开要下载的HEX文件。连接好JLink调试线。原创 2023-02-10 09:52:05 · 9009 阅读 · 3 评论 -
STM32H7并行读取AD7606数据以及片内AD值不准解决办法
先了解一下AD7606,16位,单电源,200k采样率,8路,除了贵没有其他缺点,数据相当的稳,一个5V供电,不用运放的情况下采集电压精度可以达到1mv,非常Nice与单片机相连单片机。原创 2022-12-20 15:10:25 · 6569 阅读 · 9 评论 -
STM32H7B0 HAL库中关于DMA的注意事项以及DCMI调试遇到的问题及解决方法
由于需要用到摄像头,用IO驱动的话会比较慢,这里使用的STM32H7B0中的DCMI接口,由于DMA用的比较少,在这里卡了3天,期间各种测试,从硬件到软件,接用IO读OV2640,可以读到数据,确定硬件没有问题,DCMI的DMA一直进错误中断Transfer Error Interrupt management。配置IO也要注意一下D0,D1,D3可以复用到其他IO,一定不要弄错,配置完要对着IO检查一遍,频率使用也很重要,我这里用到的频率如下。放到 MX_DMA_Init();//使能D-Cache。原创 2022-09-16 17:33:02 · 4474 阅读 · 2 评论 -
立创EDA使用心得
选择元器件进行选择基础库元器件,因为贴片时不需要换料钱,如果10个需要换料,需要不少银子,如果发现已经用了扩展库的元器件需要批量进行替换,方法如下。先选找到要替换的元器件,这里拿电阻为例,选择电阻,查看规格书。复制编号,会到立创EDA,元器件上右键,选择查找相似对象。看供应商编号已经批量改过来了,省了不少钱了。可能没有你想要的封装,为了省钱,换。批量替换供应商编号,和封装。然后重新选择你的30k电阻。查找基础库的30k电阻。原创 2022-09-06 15:40:20 · 1941 阅读 · 0 评论 -
STM32L151 LL库串口发送丢数据解决办法
在发送后加一行while((USART1->SR&0X40)==0){};等待数据发送完一个字节后,在发送第二个。原创 2022-08-17 17:07:40 · 668 阅读 · 0 评论 -
W806开发板体验
我手里是一个HLK-W806-KIT-V1.0的板子,原理图各种找不到汗,官网也只有HLK-W806-KIT-V1.1,板子用的晶振可能是商用的,我放到-10度就起不来了,总结遇到的几个问题。问题总结完了,下面说说他的优点,便宜,主频高,RAM大,FLASH大,调试直接用串口下载程序也是很方便的,IO反转速度没有STMF103快。3、板子放置一段时间,第一次上电系统起不来,断电在加电就好了。1、原理图找不到,淘宝和抖音客服都没有找到。4、板子丝印有问题PA2丝印是PA3。W806也可以一次读取多个IO。..原创 2022-07-19 16:13:02 · 1500 阅读 · 0 评论 -
w806开发板驱动ov2640读取jpeg图片1600x1200分辨率,以及花屏原因及解决办法
主频需要160MHz以上,80MHz主频读取会丢数据,读取过程中要关闭所有中断否则会出现丢数据花屏现象。上位机程序.net开发,协议很简单,先发一行特定字符,包含图片大小,然后直接发送图片数据。废话不多说上样张102KB(104,520字节).........原创 2022-07-16 09:53:09 · 3334 阅读 · 3 评论 -
KEIL5出现中文字体乱码的解决方法
收到别人的工程,打开原有的中文字可以显示,但是当我们在输入中文的时候全是乱码,这是因为我们打开的工程文字编码格式为默认的Encode in ANSI,查看编码的方法是在菜单中找到Edit->Configuration->Editor->Encoding将Encoding修改为GB2312即可显示中文,而且输入中文不乱码如果还是不显示中文请在系统语言中添加中文语言...原创 2022-06-29 09:18:30 · 5873 阅读 · 0 评论 -
STM32L031F6 LL库硬件I2C使用,中断模式
最近用到了I2C,之前都是用软件模拟I2C,听说硬件I2C已经比之前好用了,这次决定尝试一下配置上拉,串口用来查看调试信息I2C模式使能中断配置LL库配置你使用的开发工具 生成代码配置上拉,串口用来查看调试信息,配置与MASTER相同即可,硬件I2C的2个IO口直连master是主动请求,slave用中断处理所有操作,这里把主要代码贴出来i2c.c发送和读取i2c数据在主函数中,这里用的是软件停止位,同样可以使用自动停止位LL_I2C_MODE_AUTOEND,使用自动停止位不需要主动发送停止...原创 2022-06-16 17:06:02 · 2009 阅读 · 1 评论 -
Keil中编译后程序占用分析
Keil编译输出Program Size:Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116Code(code data):代码的大小 ,存储在ROM中,掉电保存RO-data(read only data):常量所占空间 ,只读,存储在ROM中RW-data(已初始化可读可写数据段rw data):程序中已经初始化的变量所占空间 ,可读可写变量,既在ROM中,又在RAM中存储ZI-data:未初始化的static变量和全局变量以及堆栈所占的空原创 2022-01-18 15:01:05 · 836 阅读 · 0 评论 -
STM32L031写Flash不使用HAL库
解锁void flash_unlock(void){ /* (1) Wait till no operation is on going */ /* (2) Check if the PELOCK is unlocked */ /* (3) Perform unlock sequence */ while ((FLASH->SR & FLASH_SR_BSY) != 0) /* (1) */ { /* For robust implementation, add here原创 2022-01-05 17:06:35 · 443 阅读 · 0 评论 -
STM32Cube STM32L053配置GPIO达到最低功耗详解含测量实际电流值
外部有上拉电阻,设置输入模式,此模式最省电设置输入模式GPIO_InitStruct.Mode = GPIO_MODE_INPUT;GPIO_InitStruct.Pull = GPIO_NOPULL;外部有上拉电阻,设置中断模式,此模式最省电,同时还可以唤醒单片机//设置中断模式GPIO_InitStruct.Pin = GPIO_PIN_1;GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;GPIO_InitStruct.Pull = GP原创 2021-12-08 11:15:00 · 6420 阅读 · 2 评论 -
STM32Cube STM32L053配置RTC WAKEUP中断唤醒
芯片手册中提到的从停止模式唤醒说明芯片手册中提到的从待机模式唤醒说明配置LL_RTC_InitTypeDef RTC_InitStruct = {0};LL_RCC_EnableRTC();NVIC_SetPriority(RTC_IRQn,0);NVIC_EnableIRQ(RTC_IRQn);RTC_InitStruct.HourFormat = LL_RTC_HOURFORMAT_24HOUR;RTC_InitStruct.AsynchPrescaler = 12原创 2021-12-07 17:10:40 · 1870 阅读 · 1 评论 -
STM32Cube STM32L053配置RTC时钟详解
先看下STM32L053的RTC时钟,这里没有外部晶振用的是内部LSE,频率37KHz通过Cube配置RTC,启用日历和时钟,我这里开启了一个RTC中断,用来唤醒休眠中的单片机STM32CubeMX默认填入的分频是使用32.768KHz的,但是内部振荡器是32KHz的,所以估计都是推荐使用外部晶振,使用内部振荡器的自己按公式重新计算分频值公式如下:RTC时钟频率 = RTC时钟源 / ((Asynchronous Predivider value + 1) * (Synchronous.原创 2021-12-07 13:20:44 · 2663 阅读 · 0 评论 -
STM32Cube STM32L053闹钟唤醒LL库和HAL库
STM32L053闹钟唤醒:设置实现原理,当闹钟时间==日历时间时,闹钟中断产生,但是闹钟中断与外部中断线17相连,所以如果不初始化外部中断线17,则无法进入RTC中断服务函数。目的:实现毫秒级闹钟中断唤醒睡眠模式。设置日历时间=闹钟时间,计时进入中断之后,再重新设置日历时间=闹钟时间。注意:中断之中也要清除外部中断标志,否则下次再次休眠电流会增加。LL库void MX_RTC_Init(void){ LL_RTC_InitTypeDef RTC_InitStruct = {0};原创 2021-12-06 16:59:57 · 1220 阅读 · 0 评论 -
STM32L031 LL库读写内部EEPROM
由于STM32L031没有找到FLASH_PECR_FTDW寄存器,这里就把这个注释掉了#include "eeprom.h"#include "main.h"//eeprom读测试void eeprom_test_read(){ uint32_t temp; uint16_t i = 0; for(i=0;i<256;i++) { temp = *(__IO uint32_t*)(EEPROM_BASE_ADDR+(i*4));#ifdef ENABLE_PRINT原创 2021-12-03 13:29:58 · 1036 阅读 · 2 评论 -
Stm32L0 STM32CUBE中UART和使用LPUART1以及串口不进中断问题解决
/* 开启串口1中断 */ LL_USART_EnableIT_RXNE(LPUART1); /* 开启串口2中断 */ LL_USART_EnableIT_RXNE(USART2);原创 2021-12-02 11:30:07 · 5529 阅读 · 3 评论 -
C语言程序设计、位运算符(异或运算符)
下面显示了 C 语言支持的位运算符。假设变量 A 的值为 60,变量 B 的值为 13,则:(1)&按位与运算符,按二进制位“与”运算。运算规则:0&0=0;0&1=0;1&0=0;1&1=1;Eg:(A & B) 将得到 12,即为 0000 1100(2)| 按位或运算符,按二进制位进行”或”运算。运算规则:0|0=0;0|1=1;1|0=1;1|1=1;Eg:(A | B) 将得到 61,即为 0011 1...原创 2021-11-30 13:27:33 · 332 阅读 · 0 评论 -
Stm32L0 内部EEPROM使用
先找到芯片的Reference manual手册,找到EEPROM的内存地址EERPOM定义#define EEPROM_BASE_ADDR 0x08080000 #define EEPROM_BYTE_SIZE 0x03FFvoid eeprom_test_write();void eeprom_test_read();这里使用的是一次写入4个字节//eeprom写测试void eeprom_test_write(){ uint16_t i; HAL_FLASHEx原创 2021-11-30 09:50:10 · 1234 阅读 · 0 评论 -
STM32Cube生成代码使用J-Link下载后如何让程序自动运行
正常情况下,使用STM32Cube生成的工程,编译下载后,程序没有自动运行,需要在线调试才可以运行,或者按硬件的复位按键。我们只需要按照1,2,3,4选中Reset and Run即可,下载完程序自动运行程序如果这样都不能自动运行,请检查 Use MicroLIB,选中编辑下载后即可自动运行,别问我怎么知道的,也别问我原理,搞不懂,不选下载后就不自动运行...原创 2021-11-24 17:00:12 · 899 阅读 · 0 评论 -
Keil软件添加新源文件
先点击创建一个新的空白文件然后点击保存或者ctrl+c,放到相应的文件夹中输入文件名,我这里以i2c.c举例,然后在相应目录点击右键,选择Add Existing Files...选择刚才保存的文件,点击确定,然后就把源文件添加进来了...原创 2021-11-16 10:28:11 · 1855 阅读 · 0 评论 -
Keil软件Project显示隐藏.h头文件的方法
在Project内的任意文件夹或文件上点击右键,选择Show Include File Dependencies,.c文件边上就会出现+号,可以查看.h头文件,相反,取消选择就可以隐藏.h头文件原创 2021-11-16 10:23:22 · 6435 阅读 · 0 评论 -
STM32开发板使用J-Link下载后如何让程序自动运行
正常情况下,使用STM32Cube生成的工程,编译下载后,程序没有自动运行,需要在线调试才可以运行,或者按硬件的复位按键。我们只需要按照1,2,3,4选中Reset and Run即可,下载完程序自动运行程序...原创 2021-11-15 15:36:44 · 1434 阅读 · 0 评论 -
STM32CubeMX官方例程本地文件夹位置
Help->Updater Settings按仓库文件夹路径打开文件夹根据你下载的驱动多少,我这里只有一个进入文件夹找到你需要的例子打开运行即可,或者将有用代码复制到你的项目中原创 2021-11-15 15:17:18 · 1153 阅读 · 0 评论