自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (4)
  • 收藏
  • 关注

转载 stm32l4低功耗模式与内部看门狗冲突问题解决

近期在做stm32低功耗项目的时候遇到了内部看门狗和低功耗模式(待机模式standy)冲突的问题,项目需求是mcu需要定时唤醒,时长可设,这个时候肯定想到的是rtc唤醒,因为在待机或者shutdown模式下只有rtc(好像还有低速计时器)可以实现计时功能,其它时钟均被关闭且上下文丢失,设置好休眠时间后发现,内部看门狗也会出发唤醒中断,然后重启mcu,而且在查阅了很多资料后发现,这个玩意儿只要初始化了就没办法关掉。好家伙,原来内部看门狗这么强大!

2024-06-13 10:14:01 11

转载 STM32 HAL库编程 发送单脉冲信号 发送一个pwm 单个窄脉冲信号

有人觉得直接用HAL_GPIO_WritePin写函数拉高再拉低就行,带来的问题就是计量脉冲宽度的时间不好掌握。尤其需要窄脉冲信号时候,可能软件指令还没执行完,需要的脉宽已经错过去了。构成的单脉冲,所以最窄脉宽可以是一个SYSCLK时钟周期(一个主频时钟周期)。我用stm32f405(168M主频)举例就是最窄脉宽为6ns。软件执行到这一条语句后,可以指定一个引脚发送一个可以设置脉宽的高电平信号。所以说单脉冲脉宽=counter period -pluse。每发送一个单脉冲都要使能一次。

2024-06-07 14:01:03 18

转载 工作电路简单到令人发指的蓝牙芯片,一起看看

STM32 蓝牙芯片

2023-03-08 08:40:23 2502

转载 总结几种流行的电池SOC估算方法

储能

2023-03-03 14:38:27 8452 5

原创 STM32驱动lan8720a DP83848相关说明

stm32 lan8720 dp83848

2022-11-24 13:18:18 2549

转载 keil5修改stm32项目名称

Keil5 修改STM32单片机项目名称

2022-11-01 10:06:46 2881

转载 STM32 热敏电阻测量温度

STM32 热敏电阻测量温度

2022-07-18 09:26:25 4176 7

转载 何为时域和频域?

时域是指时间域,频域是指频率域。时域和频域是信号的基本性质。1、时域(时间域)——自变量是时间,即横轴是时间,纵轴是信号的变化。其动态信号x(t)是描述信号在不同时刻取值的函数。 图1是正弦波的时域图,示出了振幅与时间的关系。 在时域图中,横轴是时间,纵轴是振幅。 时域图显示振幅随时间的变化,可以看出峰值振幅为5V,可以算出频率f=6 Hz。2、频域(频率域)——自变量是频率,即横轴是频率,纵轴是该频率信号的幅度,也就是通常说的频谱图。 图2是图1中正弦波的频域图在频域图中,横轴是频率,纵轴是峰值振

2022-05-31 13:23:59 882

转载 C语言volatile关键字详解

1.volatile和什么有关百度翻译是这样子翻译volatile的:                                                              

2022-05-31 09:09:47 7883 3

原创 关于stm32f407接LAN8720以太网通信调试

终于有个时间总结一下关于lan8720的调试过程。调试之前也是翻阅了各大微博,各大论坛,详细的认真的看了每一位大神发表的文章。取其精华去其糟粕,最终调通了lan8720的驱动。话不多说,切入正题。调试该款芯片有以下几个关键点:1. STM32官方出了关于f407的以太网通信的demo例程,以太网芯片用的是DP83848。有参考价值。正点原子出了LAN8720的以太网通信教程和资料。2. DP83848和LAN8720重要的几个寄存器是一样的,不过寄存器地址有区别。3. LAN8720通信可以分为2

2022-05-19 16:24:52 5704 3

转载 STM32中ETH驱动配置注意事项dp83848, ip101alf, ip101gr, RTL8201,LAN8720

1.MII/RMII/SMI接口连接和配置SMI又称站点管理接口,用于cpu与外置PHY芯片通讯,配置相关参数,包含MDC和MDIO两个管脚(CPU上有对应引脚,当然用普通GPIO口模拟SMI管理也是可行的,不过按照固定时序写入和读取数据)。MII和RMII则是是两种不同的以太网数据传输接口,因为RMII在使用更少接口的情况下具有MII相同的功效,其中MII如下图连接即可:特别注意:RMII模式下REF_CLK要连接CPU的MCO引脚,且MCO输出时钟应为50MHz。这里说下我最近遇到的stm32

2022-05-05 14:35:14 4582

转载 计算模拟I2C的传输速率

在编写I2C器件的驱动时,经常会看到手册中提及该器件的最高传输速率,如: 而在配置寄存器实现I2C中也是需要配置I2C的传输速率,如: 但模拟I2C的速率该如何计算? 首先一般I2C速率的单位是kbit/s,I2C传输速率的定义:每秒传输的比特位数。 先把代码贴出来(这里的代码在之前的日志中贴出来过): #define I2C_DELAY() I2CSysCtlDelay(30) //!<I2C速率约为237Kb/s(若为40,则速率约为178Kb/s) /* * @bri

2022-03-29 10:33:20 4901

转载 Keil-如何修改工程名

1.复制一个可以用的工程;2.如下图的文件名为自己工程的文件名,删除其它带原工程名的文件;3.修改工程名打开工程PressureSensor,点击品字形图标,在弹出的界面上,双击“Project Targets”下面的工程名,修改成PressureSensor4.右键工程名“PressureSensor”,右键菜单中选择“Options for Target ‘Usart’”,或者工具栏中直接选择此按钮。5.将Output标签下的Name of Executeable中的名称改为Pressu

2022-03-14 08:46:04 11407

原创 STM32 I2C的I2C_OwnAddress1和I2C_OwnAddress2

I2C_OwnAddress1是STM32设备本身的地址,一般STM32作为主设备,可以不用关心这个地址设置,随意设置个数就行,但是如果STM32作为从设备使用时,必须进行配置。I2C_Send7bitAddress(I2Cx, address, direction)这个address指的是外设器件从设备地址,比如挂载EEPROM时,通常是0xA0.这个地址不能和 I2C_OwnAddress1混淆。关于I2C_OwnAddress2:当stm32作为从机的时候,这个也是自己的地址,双地址就是可以配置

2022-01-19 10:18:58 3916

转载 十大滤波算法与卡尔曼滤波总结

arduino滤波算法--转载至极客工坊  ----http://www.geek-workshop.com/thread-7694-1-1.html   卡尔曼滤波 1 #include <Wire.h> // I2C library, gyroscope 2 3 // Accelerometer ADXL345 4 #define ACC (0x53) //ADXL345 ACC address 5 #define A_T.

2021-12-24 09:01:03 1969

原创 关于STM32F4 SWD复用为普通GPIO做输入输出用

首先板子上电启动默认是SWD模式。对于F1系列,复用SWD为普通GPIO,可以调用这个函数进行专门的禁止:对于F4系列,首先我们要认识到一点,系统上电后,所有引脚都是AF0复用,F4系统共支持AF0-AF15种复用具体到每种复用,查看数据手册就行,比如这个:====================================================对于F4系列,没有专门的禁止函数了,系统上电,这几个引脚默认是配置成AF0复用,且用于JTAG/SW调试模式。● PA15: JTDI 处

2021-12-08 15:13:53 4542

转载 STM32标准库之串口例程(开启了IDLE空闲中断)

2021-11-26 13:05:48 742

转载 ASCII码转十进制

//贴一段功能函数,ascll码转十进制 int chrtodec(char chr) { int value=0; //先全部将小写转换为大写 if((chr>='a')&&(chr<='z')) chr=chr-32; //将字符转化成相应的数字 if((chr>='0')&&(chr<='9')) value=chr-48; else if((chr>='A')&&..

2021-11-26 11:24:57 6301

转载 HAL库教程9:串口接收不定长数据

串口收到的两组数据之间,往往会有一定的时间间隔。可以判断这个间隔,来实现无需结束符,无需指定长度,串口可接收不定长数据的功能。如果串口在一定的时间内没有收到新的数据,可以认为一组数据已经接收完毕了。思路是用定时器来设置一个“闹钟”,连续的一段时间没有收到新的数据,闹钟响起,就把已经收到的数据打包,做相应处理。定时器溢出时间配置   首先修改定时器的溢出时间。本文规定使用5ms的间隔。在某些通信协议中,会规定间隔时间。例如Modbus规定两组数据之间要间隔3.5字符。   实际上,间隔的时间常常与通信的波

2021-10-21 13:27:13 4194 7

转载 STM32的IIC端口配置开漏输出,可以随时读取端口电平状态

查了下数据手册,里面有这么一句话:The input data register (GPIOx_IDR) captures the data present on the I/O pin at every AHB1 clock cycle.在另外一个手册里,有这么一句话:The written data on GPIOx_ODR can be read from GPIOx_IDR register that is updated every AHB clock cycle 就是说,配置成输出之后,照样

2021-10-19 11:00:20 2284

转载 STM32 HAL库方式的微秒延时函数

STM32CUBEMX系列教程之HAL库方式的微秒延时函数 标准库一般是使用系统嘀嗒定时器来进行微妙级别的延时,而HAL库将SysTick定时器用做了库函数的超时定时器,使用的地方非常多,自己修改代码使用嘀嗒定时器的话就会引起错乱。所以此时就需要自己实现一个微秒级别延时函数。 ...

2021-10-12 16:30:32 6379 1

转载 STM32F407单片机移植MS5611气压计(基于IIC)---同时解决温度低于20度时计算得到的大气压错误的问题

        最近一个工程项目需要使用MS5611气压计,就花时间研究了一下,发现网上很多都是基于STM32F103单片机的MS5611气压计源程序,当移植到STM32F407时发现采集的大气压力和温度值不对,同时发现网上部分程序在温度高于20度时,计算得到的大气压力是正确的,但是当温度低于20度时,计算得到的大气压力是错误的。网上程序代码问题主要集中在以下几个方面: ...

2021-09-29 09:27:19 1749 6

转载 STM32CubeMx生成的工程中使用Printf函数调试和IAP

原文链接:https://blog.csdn.net/mynameislinduan/article/details/83579725stm32cubemx工程,freerotsstm32cubemx调用printfstm32 iap,stm32在线下载stm32cubemx在线烧录stm32 调用printf函数stm32重定向printf函数输出stm32串口printf输出stm32进入dfustm32cubemx IAP,stm32cubemx dufstm32cubemx在线

2021-06-08 09:05:42 1127

转载 STM32 烧错代码导致SWD失效解决办法

不同的下载方式对应STM32启动方式也不同,如下图是STM32三种启动方式: ●第一种启动方式是最常用的用户FLASH启动,正常工作就在这种模式下,STM32的FLASH可以擦出10万次,所以不用担心芯片哪天会被擦爆! ●第二种启动方式是系统存储器启动方式,即我们常说的串口下载方式(ISP),不建议使用这种,速度比较慢。STM32中自带的BootLoader就是在这种启动方式中,如果出现程序硬件错误的话可以切换BOOT0/1到该模式下重新烧写Flash即可恢复正常。 ...

2020-09-21 11:03:01 3382 1

原创 STM32 ADC 采样值不准确或偏小 分析和解决方法

问题1(HAL库stm32cubemx):使用ADC / DMA 循环自动采样的方式,但是采样数据与实际数据相差比较大,小了很多。解决办法配置adc的时候,采样周期需要设置大一些。sConfig.SamplingTime = ADC_SAMPLETIME_71CYCLES_5 ;原因分析采样周期太小,会导致采样不准确,采样周期越大越准确。采样周期太大会影响采样时间,计算公式:采样时间(us) = (12.5+SamplingTime ) / ADC时钟(MHZ)问题2:

2020-09-21 10:10:47 18146 6

转载 转:I2C设备、读写地址的关系

原文:https://blog.csdn.net/zhijianjingling00/article/details/9294785 结论:I2C设备的写地址 = I2C设备地址 &lt;&lt; 1I2C设备的读地址 = (I2C设备地址 &lt;&lt; 1) + 1例如:#define     MAX_17040_BATTERY_I2C_ADDR        (0x36)...

2019-01-02 15:31:38 3946

转载 ARM Linux 3.x的设备树(Device Tree)

宋宝华 Barry Song 1.    ARM Device Tree起源Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修正。在过去的ARM Linux中,arch/arm/pla

2015-05-27 09:13:29 235

DRV8412数据手册,及笔记

DRV8412数据手册,及笔记

2022-11-24

MS5611-01BA03数据手册

MS5611-01BA03数据手册

2022-11-24

DP83848数据手册

DP83848数据手册

2022-11-24

LAN8720数据手册,STM32驱动源码,及连接接线示意图

LAN8720数据手册,STM32驱动源码,及连接接线示意图

2022-11-24

IRCUT_红外灯板_步进电机样例程序.zip

IRCUT_红外灯板_步进电机样例程序

2021-09-20

securecrt.rar

securecrt.rar

2021-09-20

AP6212移植到HI3518E.txt

AP6212移植到HI3518E.txt

2021-09-20

IPC.exe 网络摄像头调试软件

IPC.exe 网络摄像头调试软件

2021-09-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除