![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
嵌入式MCU
文章平均质量分 86
MCU类
宁静致远2021
天道酬勤,持之以恒。
发上等愿,结中等缘,享下等福;
择高处立,寻平处住,向宽处行。
展开
-
电容参数X5R,X7R,Y5V,COG 全面讲解!
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。原创 2024-06-13 15:30:00 · 1404 阅读 · 0 评论 -
【选型】效率高达95%,国产电源芯片SCT2650 可PIN TO PIN 替换TPS54560
随着网络信息技术的快速发展,5G基站建设规模不断扩大,某客户在研发一个5G大功率基站的项目,使用到了一款TI的电源芯片TPS54560,目前因为TI的交期比较紧张,急需要一款参数合适的国产电源芯片去替代它。2、虽然说SCT2650的静态电流没有TPS54560小,但是SCT2650的内置MOS管的导通电阻要比TPS54560小,说明SCT2650的功耗可以做的比TPS54560小,这大大地延长了芯片的使用寿命;最后,SCT2650除了具有更高的效率之外,芯洲科技还可以提供及时的技术服务和稳定的现货支持。原创 2024-05-16 20:34:30 · 545 阅读 · 0 评论 -
RS232,RS485接口模块PCB布局布线EMC浪涌防护设计规范
RS232接口多用于计算机与设备之间的通讯,用于数据监控及调试。在应用的过程中通讯电缆容易耦合外部的干扰对信号传输造成一定的影响,单板内部的干扰也可能通过电缆形成对外辐射。本方案从EMC原理上,进行了相关的抑制干扰和抗敏感度的设计,从设计层次解决EMC问题。原创 2024-05-10 17:15:51 · 1415 阅读 · 0 评论 -
自动方向控制RS485芯片
注意:这一系列手册是一起的,MAX13410E MAX13413E MAX 13414E MAX13415E都是不带自动换向功能的,并且引脚功能和传统MAX13487还不一样。市场上进口芯片支持 自动换向的RS485芯片 只有4款芯片,分别是ADI和TI家的,没有其它进口厂家选择。另外 找到一些国产 自动换向的RS485芯片(后半部分),这些国产芯片 个人没用过,不知晓芯片质量,各位慎重选用。原创 2024-05-09 14:02:23 · 910 阅读 · 0 评论 -
C语言 sizeof和strlen的区别
我们知道字符串是以 ‘\0’ 为结束标志的,所以char str1[ ] = “hello” 等效于char str2[ ] = {‘h’ , ‘e’ , ‘l’ , ‘l’ , ‘o’ , ‘\0’}。strlen函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个’\0’,如果你只定义没有给它赋初值,这个结果是不定的,它会从首地址一直找下去,直到遇到’\0’停止。2、 strlen 测量的是字符串的实际长度,以’\0’ 结束,返回结果不包括’\0’。类型-该类型所占的空间的大小;原创 2024-04-20 20:18:27 · 975 阅读 · 0 评论 -
C语言 memcpy内存块拷贝函数
memset是一个初始化函数,作用是将某一块内存中的全部设置为指定的值。s指向要填充的内存块。c是要被设置的值。n是要被设置该值的字符数。返回类型是一个指向存储区s的指针。需要说明的几个地方。原创 2024-04-19 19:37:34 · 870 阅读 · 0 评论 -
STM32F407单片机通用24CXXX读写程序(KEIL),兼容24C系列存储器(24C01到24C512),支持存储器任意地址跨页连续读写多个页
通俗的讲就是128Byte就占用了128个地址,一个7bit的数据范围为(0-127)刚好128,所以128Byte的字节地址需要一个7bit的数据来表示。AT24C01,AT24C02,AT24C04,AT24C08,AT24C16,AT24C32,AT24C64,AT24C128,AT24C256…比如AT24C256有512页每页64个字节,15bit的地址数据对其寻址,低6bit(D5-D0)为页内字节单元地址,高9bit(D14-D6)为页地址。四、AT24CXXX页地址与页内单元地址。原创 2024-04-11 15:22:13 · 1079 阅读 · 0 评论 -
关于MCU产品开发参数存储的几种方案
参数的初始化方法,首先读取EEPROM的0位置处的数据,判断是否为0x55AA合法标志,若不是0x55AA,则说明参数区为首次使用,需要进行初始化默认参数填充,于是将DefaultValues所指的默认值填入EEPROM中,并设置0x55AA标志,以后每次上电便会检测到参数的合法性。别急,有另类的方式可以达到这种功能,在编译时让编译器为你检查,而且准确性 100%(当然,这个添加新参数时你还得简单根据新增的参数大小减少预留的大小,这个是必须要的)原创 2024-04-11 11:56:59 · 1341 阅读 · 0 评论 -
基于STM32CubeMX移植freeModbus RTU(从站)-避坑篇
ModbusRTU是通过定时器和串口配合来实现Modbus通信的,所以定时器是决定有没有超时的一大关键问题,由串口设置部分可知,定时器设置是要配合串口设置的波特率食用比较香,所以根据我使用的115200波特率可以得到我定时器设置。13.打开工程,引入STM32MB内的所有头文件,并新建名为MB和MB_Port的组,MB内添加STM32MB文件夹下modbus文件夹内所有c文件以及根目录的demo.c文件,MB_Port内添加STM32MB文件夹下port文件夹内所有c文件,如图所示。原创 2024-04-01 09:28:06 · 1456 阅读 · 0 评论 -
浮点数的比较以及abs和fabs的区别
我们知道有的小数可能小数点后有很多为,比如无限循环小数、无限不循环小数,而计算机中的float和double能够表示的小数范围是有限的,因此浮点数在计算机中的存储是不精确的。使用abs求浮点数的绝对值是有问题的,使用fabs求整数的绝对值也是有问题的,所以在C语言中求浮点数的时候一定要选对函数。在C++中,abs和fabs都是用来计算数值的绝对值的函数,但它们之间存在一些重要的区别。fabs:对于浮点数,精度取决于具体的实现和平台,但通常足够用于大多数的数值计算。abs:通常用于计算整数的绝对值。原创 2024-03-02 13:16:26 · 2206 阅读 · 0 评论 -
用Excel教会你PID算法
PID调节示意图如下可以发现:比例项是纠正偏差的主力,越远离偏差绝对值就越大,快速把偏差纠正回来。积分项和以往的状态有关,面积的绝对值越大它的绝对值就越大,它的作用是消除累计偏差。微分项跟斜率有关,比较难解释,总的来说它的作用是:当目标靠近设定值时加速它靠近,当目标远离设定值时阻止它远离。因此微分可以增加系统稳定性,因为到达目的之后,离开会受到阻碍。原创 2024-02-23 09:02:02 · 1380 阅读 · 0 评论 -
mcu专用看门狗复位芯片(如MAX706)
sgm706是圣邦微(SGMICRO)电子新推出的多功能微处理器监控电路芯片,除了看门狗功能外,还具有上电自动复位、手动复位及低电压报警(复位)等功能,使用起来非常方便可靠,可替代MAX706。一般的电路设计者,使用的阻容复位稳定性极差,时常有按了复位没反应,或是要按一段时间才能复位的经历。使用低电压检测和复位芯片,主要可以最大程度提高单片机的复位性能,其原理是通过预先设定好确定的电压值(阈值)启动复位操作,同时排除瞬间干扰的影响,又有防止单片机在电源启动和关闭期间的误操作效,充分保证数据的**。原创 2024-01-29 14:54:55 · 3215 阅读 · 1 评论 -
RT-1052学习笔记 - GPIO架构分析
RT-1052学习笔记 - GPIO架构分析一、RT1052之GPIO与IOMUX二、GPIO架构分析分析GPIO的外设框架库函数操作1、初始化MUX2、初始化PAD3、初始化GPIO外设4、配置时钟5、操作GPIO引脚状态三、驱动74hc595,级联模式1.驱动头文件74hct595.h2.驱动源文件74hct595.c一、RT1052之GPIO与IOMUXhttps://blog.csdn.net/weixin_44021648/article/details/113839882?spm=1001原创 2022-04-23 09:26:58 · 936 阅读 · 0 评论 -
IMXRT 的Boot模式
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录原文链接:https://blog.csdn.net/weixin_42378319/article/details/104278245本篇文章参考NXP技术博客整理总结,为个人学习笔记,如有错误欢迎在评论区指正,谢谢。NXP的IMXRT系列单片机,血统来自i.mx处理器系列,除RT1064外,均没有内置flash,因此启动的boot配置相比一般单片机来说稍微复杂。IMXRT内部有96KB的ROM,用于存储官方的BOOT.原创 2022-05-17 15:23:17 · 858 阅读 · 0 评论 -
STM32F030C8读取CS1237采集模拟
第二个想到的原因是,硬件CS1237和STM32的电平兼容问题,我的电路CS1237是5V供电,stm32是3V3供电,它们之间SPI通过22欧姆电阻串联。(1) 设置STM32的DOUT端口为INPUT,监测来自CS1237的DOUT电平,一般芯片上电后,CS1237的DOUT会不断地输出高脉冲(示波器测量约20us的高脉冲),代码中要监测到DOUT的”下降沿“,然后才是读写配置和读取ADC转换数值的操作;一顿仔细检查代码,发现了STM32端口配置的”笔误“,修改后,仍然无法正确配置CONFIG;原创 2023-12-13 15:04:56 · 1494 阅读 · 2 评论 -
热敏电阻NTC、PTC
NTC、PTC是什么?对于没有接触过NTC、PTC或刚接触过NTC、PTC的人来说,NTC、PTC是什么也不知道,当然,了解NTC、PTC概念也是比较简单的,但是当你去搜索资料,看到许许多多的懵懵懂懂的专业名词时,以及看到一些硬件,可能会出现些许傻眼,毕竟没接触过,满脑问号。对于初学者或急于敢项目的软件工程师,尽快初步了解,学习到基本原理,代码跑出正确的数据就是最好的。毕竟学习是渐进的,不可一蹴而就就能深入其原理。原创 2023-12-09 15:42:21 · 1967 阅读 · 0 评论 -
PID控制参数整定(调节方法)原理+图示+MATLAB调试
首先调节P的数量级达到一个只有2个左右明显峰值的波形,再调节I找到不会波形振荡也不会没有超调的的区间,在区间内找到一个I将稳态误差尽可能消除。最终使用D来控制衰减比和波形的峰值、超调量。最后根据要求的稳态值、调节时间、超调量、上升时间、峰值时间等指标进行微调达到目标。最后可以总结成一个口诀参数整定找最佳,从小到大顺序查,先是比例后积分,最后再把微分加,曲线振荡很频繁,比例度盘要放大,曲线漂浮绕大湾,比例度盘往小扳,曲线偏离回复慢,积分时间往下降,曲线波动周期长,积分时间再加长,原创 2023-12-09 10:59:18 · 8072 阅读 · 0 评论 -
大电流H桥电机驱动电路的设计与解析(包括自举电路的讲解,以IR2104+LR7843为例)
之前介绍过H桥电机驱动电路的基本原理,但是以集成的电机驱动芯片为示例。这些集成的芯片使用起来比较简单,但是只能适用于一些小电流电机,对于大电流的电机(比如:RS380和RS540电机),则不能使用这些集成的芯片(否则会导致芯片严重发热并烧毁)。此时便需要自行用半桥/全桥驱动芯片和MOS管搭建合适的H桥电机驱动电路实现对大电流电机的驱动控制。在学习此部分之前,需要先掌握基础H桥驱动的工作原理,具体可参看此篇博客:电机驱动芯片(H桥、直流电机驱动方式)原创 2023-12-09 09:26:07 · 6255 阅读 · 3 评论 -
J-LINK J-FLASH 下载STM32单片机程序使用教程
下载失败时,重新connect,然后点击 unsecure chip解锁芯片 再点击 erase chip擦除芯片,然后再重新Program F5即可正常下载 )如果芯片有读写保护或下载失败,可以点击先Unsecure Chip(解除保护)再点击Erase Chip(擦除芯片),然后再烧重新烧写程序。另一种方法是 烧写失败后 重新连接MCU,点击Targe- Production Programming F7, 即可开始烧写程序,这个选项会自动执行芯片擦除+烧写+校验3个步骤。然后重新对目标板断电,上电。原创 2023-12-02 17:45:49 · 4019 阅读 · 0 评论 -
AD7124-4 实测热电偶数据读取,电压精度到稳定到±1uV, 电压波动260nV, 温度精度到±0.01℃
AD7124是目前常用的一种24位ADC,在全功率模式、9.4SPS的速率、gain = 128的状态运行,均方根(rms)可达到23nV;信号误差在±10uV左右,单片价格在¥135~150,对于测控仪器中采集芯片的选型来说,该芯片价位处于中端层面,性价比较高。AD7124的引脚排布、硬件SPI的驱动方式我已经在上一篇文章发布过,这里不再做过多赘述,链接如下:使用stm32的硬件SPI驱动AD7124的方法首先介绍一下AD7124几个常用寄存器的基本功能。原创 2023-12-02 17:33:46 · 3263 阅读 · 0 评论 -
stm32 Bootloader设计(YModem协议)
若第1字节为SOH时有128字节,为STX时有1024字节,这部分为数据区。“Foo.c” 文件名, 超级终端下,在文件名后还有文件大小。官方dome也是因为使用了这个文件大小进行比对。这就是为什么用SecureCRT中的YMODEM协议而无法正确传输的原因。在文件名和文件大小之后,如果不满128字节,以0补满。最后两字节:这里需要注意,只有数据部分参与了效CRC验,不包括头和编码部分。原创 2023-11-08 15:23:42 · 1676 阅读 · 0 评论 -
STM32 IAP应用开发--bootloader升级程序
IAP(In-Application Programming) 指MCU可以在系统中获取新代码并对自己重新编程,即可用程序来改变程序。在应用编程(IAP)是用户的应用代码对片内Flash存储器进行擦除/编程的方法。这种方式的典型应用就是用一小段代码来实现程序的下载,实际上单片机的ISP功能就是通过IAP技术来实现的,即片子在出厂前就已经有一段小的boot程序在里面,片子上电后,开始运行这段程序,当检测到上位机有下载要求时,便和上位机通信,然后下载数据到数据存储区,从而实现固件升级。原创 2023-11-05 15:12:32 · 1846 阅读 · 0 评论 -
【转载】STM32 Timer定时器开机立即进入中断问题(HAL库)
细心的朋友会发现TIM_SR_UIF其实是SR(定时器状态寄存器)的最低位,初始化时若TIM_SR_UIF为1则SR也为1,若TIM_SR_UIF为0则SR也为0,因此存在另一种解决办法:将__HAL_TIM_CLEAR_FLAG(&htim7, TIM_SR_UIF);原因就是HAL库中定时器初始化后没有更新中断标志位,__HAL_TIM_CLEAR_FLAG(&htim7, TIM_SR_UIF)后清除了更新中断标志位,此时TIM_SR_UIF为0,中断产生后TIM_SR_UIF为1。原创 2023-02-25 14:34:17 · 2770 阅读 · 2 评论 -
【转载】MDK中的中文字体乱码解决方法
在MDK中添加中文注释的时候,如果写错了想删除,一般是删一次会出现乱码的问题,特别是想在一段中文中插入一句话时,光标位置没选好的话后面的注释都会受到影响而现实乱码,一般解决的方法是在MDK的configuration中选择GB2312等一些中文编码方式,如果直接选择UTF-8,可能会出现现有的注释乱码问题,选择GB2312的话,整个编译器的字体都会改变,个人还是比较喜欢自带的Consolas字体,英文显示效果还可以,当然有些会选择用黑体,个人觉得还是不够好看,特别是用黑体英文的显示不好。原创 2023-02-24 09:12:14 · 296 阅读 · 0 评论 -
Win10解决COM口大量在使用中问题的方法
1. Windows+R 输入cmd回车2. 输入regedit打开注册表编辑器3. 进入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter4. 删除ComDB文件5. 打开设备管理器,扫描硬件改动就可以了,若还是不行则重启计算机原文链接:https://blog.csdn.net/William_Zhang_CSDN/article/details/124501639原创 2023-02-20 13:26:06 · 721 阅读 · 0 评论 -
STM32HAL库调用内部API却显示未定义解决方法
问题描述在使用hal库进行开发时,碰到明明已经在项目管理里添加了STM32 hal库的驱动文件,并且头文件也已经添加了正确的路径,但是编译时仍然显示undefine,KEIL中也没有相应的代码提示的问题。不用怀疑,一定是相关头文件没有包含进来导致的。那怎么解决呢,难道还要将一个个头文件手动include一下吗?其实这些宏定义也不用你自己去写,在文件的开头已经定义好了,只不过是注释掉了,你需要使用什么功能就把相应的注释去掉就行了。原创 2023-02-20 13:12:33 · 631 阅读 · 0 评论 -
【转载】通过HAL库实现MODBUS从机程序编写与调试-----STM32CubeMX操作篇
手把手教你,通过HAL库实现MODBUS从机程序编写与调试(一)-----STM32CubeMX操作篇原创 2023-02-15 09:58:03 · 1698 阅读 · 0 评论 -
STM32 HAL库-定时器中断
STM32F407 有众多的定时器,其中包括 2 个基本定时器(TIM6 和 TIM7)、10 个通用定时器(TIM2 ~ TIM5、TIM9 ~TIM14)、2 个高级控制定时器(TIM1 和 TIM8),这些定时器彼此完全独立,不共享任何资源。选择定时器,配置时钟源,设置预分频系数,计数模式,设置自动重装载值。原创 2023-02-15 09:13:46 · 11880 阅读 · 2 评论 -
10种ADC软件滤波方法及程序
如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统。如果采样值当前有效值,则计数器+1,并判断计数器是否>=上限N(溢出)如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值。对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差。对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差。给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低。N值的选取:流量,N=12;是对递推平均滤波法的改进,即不同时刻的数据加以不同的权。原创 2023-02-11 15:07:46 · 1775 阅读 · 0 评论 -
Win10安装TortoiseGit,报错误码 2503
输入 msiexec /package + 安装程序所在的绝对路径,如: msiexec /package F:\DownLoad\TortoiseGit-2.10.0.0-64bit.msi。原创 2023-02-10 16:06:29 · 528 阅读 · 0 评论 -
STM32 BSRR BRR ODR 寄存器解析(F4系列已经去掉BRR寄存器了)
G0x0系列GPIO寄存器F4系列GPIO寄存器(没有BRR寄存器了)经常会看到类似如下的宏定义语句,用于对已经初始化后的 IO 口输出高、低电平。其作用类似于如下两个库函数,而且实际上这两个库函数就是通过修改BSRR,BRR寄存器的值来实现对 IO 口设置的。如下便是输出高电平的函数体:因此,使用宏或者库函数本质上都是一样的。区别在于使用宏更快,而使用函数更灵活。注意:在要求速度/书序的更快更严格的场合,建议使用宏定义操作IO口对应的引脚。BSRR 和 BRR 都是 STM32 系列 MCU 中原创 2022-11-17 09:01:42 · 2860 阅读 · 2 评论 -
MAX6675应用注意事项
当CS为高电平的时候开始转换,转换时间约为220ms,当CS为低电平时,停止转换,通过SO读取转换结果。否则,读取的数据一直为0或者不变。配置SPI时序时,为MODE 0,即SCK空闲电平为0, 采集在上升沿(CPOA=0),读取数据在下降沿。3.介于STM32只读,就只用3根线,SO,SCK,CS。说明:1.片选任意IO管脚即可,低电平有效!一个SPI接口,配合N通道片选。2.K型热电偶分别接T+,T-;原创 2022-11-04 08:58:19 · 3037 阅读 · 2 评论 -
解决vscode中文乱码问题(不是改GBK,亲测有效)
配置好了以后,下载vscode后也出现了输出中文的乱码问题,用与codeblocks相似的解决方法解除之,又发现网上都是将编码转为GBK(这样用其他应用打开时可能又会出现乱码),好像没有提到这个方法,特此记录之。就是电脑上其他用GBK编写的软件都会出现错误,相当于用大错误换小错误,可以尝试,但不推荐。是因为中文主要有两套编码,一套是GBK,一套是UTF-8,代码编辑器一般默认用UTF-8,而在输出的终端中默认是GBK,所以在UTF-8下的中文输出到GBK的终端自然会乱码。,按enter进入,会打开一个叫。转载 2022-10-30 20:04:54 · 15779 阅读 · 1 评论 -
stm32cubemx针对STM32F103系列问题挖坑-CMSIS-DAP不能下载调试
使用环境:STM32F103系列HAL库版本: V1.8.4。原创 2022-09-08 13:55:26 · 798 阅读 · 0 评论 -
解决Win10下cmd中git status中文文件名乱码问题
win10下cmd中git status中文名称乱码问题及解决方法原创 2022-09-08 13:42:50 · 691 阅读 · 0 评论 -
Git 开发必备 .gitignore 详解
在使用 git 过程中,掌握 .gitignore 的使用很重要,可以减少不必要的文件上传到远程。原创 2022-09-07 10:52:47 · 1193 阅读 · 0 评论 -
AD7190之STM32程序
AD7190是一款适合高精密测量应用的低噪声完整模拟前端。它集成一个低噪声、24位Σ-Δ型模数转换(ADC)。片内低噪声增益级意味着可直接输入小信号。这款器件可配置为两路差分输入或四路伪差分输入。片内通道序列器可以使能多个通道,AD7190按顺序在各使能通道上执行转换,这可以简化与器件的通信。片内4.92 MHz时钟可以用作ADC的时钟源;或者,也可以使用外部时钟或晶振。该器件的输出数据速率可在4.7 Hz至4.8 kHz的范围内变化。这款器件提供两种数字滤波器选项。原创 2022-08-22 13:34:30 · 4069 阅读 · 2 评论 -
TPS54331纹波 干扰收音机原因
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录原文链接:https://blog.csdn.net/tiger3927/article/details/7957012用了一个TPS54331 把12 V 转5V后,再经过一个LDO转换为3.3V给收音IC,结果干扰非常大。这之前用的是LM2596,对收音机干扰很小。分析输出纹波大,但是一直找不到原因。最后,经过排查,对比54331的datasheet,发现54331对输入脚要求很高,必须使用一个无极性大电容和几个小电.原创 2022-04-25 15:26:31 · 932 阅读 · 0 评论 -
继电器触点RC吸收电路
继电器触点RC吸收电路电弧灭弧接触器和继电器触点两端并联RC吸收回路市面上的继电器原文链接:https://blog.csdn.net/weixin_45633643/article/details/107662100电弧电弧的形成:开关释放时,线圈放电,电离空气发光原因:感应电动势 u=L(di/dt)电弧的危害:1、损害触点 2、电路断开时间延长 (某些场合不允许 ETS 跳机) 3、损伤人、设备灭弧1、真空灭弧2、使用续流二极管接触器和继电器1、接触器用来接通或断开主电路,作为接原创 2022-04-09 08:51:08 · 12659 阅读 · 1 评论 -
STM32 HAL库学习笔记4-SPI
STM32 HAL库学习笔记4-SPI前言一、SPI协议简介SPI物理层SPI协议层1.基本通讯过程2. 通讯的起始和停止信号3. 数据有效性4. CPOL/CPHA 及通讯模式二、STM32的SPI特性及架构STM32 SPI架构解析1.逻辑引脚2.时钟控制逻辑3.数据控制逻辑4.整体控制逻辑STM32 SPI外设通讯过程三、STM32 HAL库中的SPI1.SPI初始化结构体2.接口函数原文链接:https://blog.csdn.net/kouqi627/article/details/115905原创 2022-03-08 10:57:59 · 2086 阅读 · 0 评论