- 博客(160)
- 问答 (1)
- 收藏
- 关注
原创 辉芒微如何在只有Hex文件时,通过FMD-Link烧录程序?
FMD-Link用于8-bit MCU的仿真/烧录/Touch开发。(EEPROM 我这里并不需要就没有,空白即可)第一、右边看一下固件版本是否正确,可以点击FMD更新一下固件成功;第一、点击自动烧录或者烧录都是可以的,对应不同的指示;我这里是因为没有连接MCU,所以提示烧录失败;第二,打开所需要的Flash文件,我的是Hex文件;烧录成功会有提示,没有提示说明操作失误;下载这个软件,这个软件是用来批量烧录的;第三,下面都不需要勾选,直接点击确定;第一,选择系列→找到对应的型号;第二、点击左边器件\设置;
2024-11-01 17:12:26
790
原创 辉芒微FMD之FT61FC3x
FT61FC3X是一款精简指令集的A/D型8位单片机,其内部集成了一个RAM数据存储器和一个非易失型数据EEPROM存储器。在模拟特性方面,该芯片内部集成了一个多通道12位的A/D转换器,以及多个定时器模块,可以提供定时、计数和PWM功能。内部看门狗、低电压复位、低电压检测功能保证了系统可靠地运行。同时提供丰富的时钟选项,包括内部快时钟、内部慢时钟、外部晶振时钟和外部输入时钟,以便用户灵活使用,此外该单片机包括丰富的IO资源,使该系列单片机可以广泛应用于各种产品。
2024-10-18 09:08:13
556
原创 按键扫描函数,松手检测
首先说明一下我这个按键扫描函数的作用,我要实现的是长按按键就关闭MCU所有外设,即进入睡眠模式,睡眠之后可以使用这个按键进行唤醒MCU,那么这里就要考虑一个误唤醒的问题,所以思路是长按之后进行一个假睡眠(我这里的表现就是关闭小灯),松手之后才会真正意义上的执行睡眠指令,开启中断,进入睡眠模式。下面是主函数里的while循环,Key1_Function这个标志长按不松手就置1,现象就是P20引脚电平拉高,熄灭小灯;1、Release_cnt:松手之后或者没有按下按键进行累加,用以按下按键松手之后的消抖;
2024-07-15 10:26:03
796
原创 keil已经装了C51之后如何安装MDK
本篇文章将介绍嵌入式开发工具Keil 5的安装方法,并使MDK(Microcontroller Development Kit,开发stm32时会用到)和C51(51单片机C语言软件开发系统)共存。今后使用Keil 5可同时开发51单片机程序和ARM单片机程序,便于学习与从51到32的过渡。注:为防止商业纠纷,本篇文章不涉及文中软件的注册破解,请支持正版。同时为了便于今后更深入的学习,本文不会介绍软件的汉化步骤。希望各位同学熟悉英文软件的使用,适应英语环境,这对今后的学习有极大的帮助。
2024-06-18 16:24:18
959
1
转载 *** ERROR L107: ADDRESS SPACE OVERFLOW keil错误的解决方法
根据提示的大概意思我删删删,删了好多变量还是不行,然后就百度了下;找到一位博主的帖子,然后修改过后,编译确实是通过了。根据提示可以看出是内存地址溢出的意思 ,我只是在文件里粘贴了几行代码而已;
2024-05-18 12:08:37
958
原创 STC国芯之STC8H1k08
我在项目里也是这么配置的,但是实际发现这个的设置和最终输出的时钟频率好像并无联系,系统时钟是由这里的宏定义所决定的。最后得出结论,是我自己得出的,并不一定对哈,前面两个寄存器设置的只是时钟源以及决定最终能否输出这么大的系统时钟频率,最主要的还是上图宏定义所设置的主时钟频率。所以这里时钟源设置和分频以及最后的系统时钟设置MAIN_Fosc宏定义我是没有搞懂的。参考STC8H的数据手册,第6章节系统时钟部分有介绍,系统时钟有3个时钟源可以选择。
2024-03-27 09:31:20
4023
原创 安装汇春MDTIDE以及HI-TECH PICCv9.83(PICC语言编译器)
最近了解了汇春一款8位通用型MCU----MDT10F684,所以这里安装一下IDE以及配置一下环境。
2024-03-13 16:32:09
1401
转载 STC-ISP下载失败的原因与解决汇总
(注:若USB转串口芯片共板,不要对该芯片断电,否则USB转的串口会消失)解决:经检查,发现用户使用的USB线不稳定,更换为台湾力特牌(推荐)的USB线(FT232芯片)并下载安装最新驱动后下载成功(注:因STC-ISP对串口时序和电平要求较严格,故部分低价USB串口线不能满足要求导致下载失败)。解决:用户STC-ISP的下载选项选择了“下次冷启动P1.0/P1.1为0/0才下载”,而实际下载并未拉低导致下载失败,将该两脚接地即可(注:应留意STC-ISP的下载选项,理解各参数的用法,做出合适的选择)。
2024-03-05 16:39:49
2265
原创 C++ Primer Plus----第十三章--类继承
本章内容包括:is-a关系的继承;如何以公有方式从一个类派生出另一个类;构造函数成员初始化列表;向上和向下强制转换;早期(静态)联编与晚期(动态)联编;何时及如何使用公有函数。
2024-01-19 15:25:51
555
原创 C++ Primer Plus----第十二章--类和动态内存分布
本章内容包括:对类成员使用动态内存分配;隐式和显式复制构造函数;隐式和显式重载赋值运算符;在构造函数中使用new所必须完成的工作;使用静态类成员;将定位new运算符用于对象;使用指向对象的指针;实现队列抽象数据类型(ADT)。
2023-12-29 19:41:03
1073
原创 C++ Primer Plus----第一章--预备知识
本章节内容包括:C语言和C++的发展历史和基本原理;过程性编程和面向对象编程;C++是如何在C语言的基础上添加面向对象概念的;C++是如何在C语言的基础上添加泛型编程概念的;
2023-12-29 10:27:02
459
原创 什么是大小端?
比如说,我们要存储一个32位的数据0x11223344,这个16进制的数,这个数据本身11在这个数据里面它就是高字节,44在这个数据里面就是低字节。我们说的是这个数据本身。比如说我们存储到内存,内存的一个地址是从0x2000000到0x20000003四个字节的存储空间当中,如果是大端的模式,就是这个硬件平台是大端的模式,那么就会将11,也就是高字节存储到低地址当中。我们在写代码的时候,肯定不仅仅是只去写定义,比如8位这样的数据类型,肯定还有16位的(2个字节),32位的(4个字节)这样的数据。
2023-12-21 22:15:20
449
原创 明明电流不大,为什么你的MOS管还会发热?
MOS管的选型是关键,我么在前面提到RDS(ON)这个关键参数,它的变化时导致发热的主要原因,因此选择低导通电阻的MOS管是至关重要的。先了解一下MOS管工作发热的基本情况,在MOS管中有几个重要的参数,导通阻抗RDS(ON),栅极/驱动电压VGS,以及流经开关的电流漏源电流ID。如果没有做足够好的散热设计,通过漏极和源极的导通电流ID就会过大,不过,ID小于最大电流,也可能发热严重,因此需要足够好的辅助散热片来帮助MOS管很好的散热。此外,过分的追求体积也会导致频率提高,MOS管上的损耗增大。
2023-12-21 20:45:10
1755
原创 LDO的工作原理
当输入电压VIN不变时,VGS电压会减小,源极电流ID会减小,VDS电压会增大,所以输出电压VOUT会减小,从而稳定输出电压。总体来讲,线性稳压器的成本低,新型稳压器输出电压稳定,纹波小,稳压器静态电流小,输出电路所用器件少,但效率低下,发热严重,只能用于降压应用。当输出电压VOUT降低时,通过 电阻R1和R2进行采样反馈,反馈点VFB的电位降低,此时UG的电位降低,当输入电压VIN不变时,VGS电压会增大,漏极电路ID会增大,VDS电压会减小,所以输出电压VOUT会增大,从而稳定输出电压。
2023-12-20 21:35:57
858
原创 MCU为什么上电不启动?
NRST是MCU的复位引脚,如果复位引脚没有拉高,程序也不会启动。第一,boot引脚电平不对,例如在GD32的MCU上,boot引脚决定了MCU的启动方式。如果MCU超频了,那么也会上电后跑飞导致不启动的现象,当我们的晶振大小大于程序配置不一致时,就会出现我们以为主频正常,但芯片实际已经超频的离谱了。如果还没有找到问题,那么就大胆的进入debug模式,千万不要对自己的程序太自信,真想甚至可能就是打错一个字母。都遇到过这样的问题吧,自信满满的把程序下载到板子上,结果发现MCU居然没启动。
2023-12-19 20:51:23
1374
原创 为什么说有铅锡比无铅锡好?
虽然使用有铅焊锡能减缓这种现象,但是又过不了欧盟的Rohs,使用无铅锡工艺成本又很高,特别是在汽车安全件的电路板上连接器,比如像安全气囊ABS等系统,一旦出现虚焊现象,后果是十分严重的。如果现在的电路板是用纯锡,可能夏天买的电子产品冬天就解体了,而在锡中加入其它金属变成合金,就可以防止这种现象发生,也就是常用的有铅锡。其实说个反直觉的,有铅焊锡相较于无铅焊锡,焊接的产品质量会更加好一点,因为无铅焊锡的质地硬,脆性大,特别是无铅低温焊锡,很容易因为热胀冷缩而导致焊接层开裂,而有铅焊锡的延展性就很好。
2023-12-18 22:20:55
6313
原创 为什么MCU在ADC采样时IO口有毛刺?
这个毛刺对结果有什么影响吗?如果从毛刺产生时刻开始,经过采样开启时间后电压已经恢复平稳,那么此时这个平稳的电压和ADC采样电容上的电压一致,接下来的ADC转换也就能得到正确的结果。首先我们先看下GD32 MCU的ADC内部采样电路的原理示意图(仅举例),这个电路很简单,MCU采样保持电路可以等效为一个开关、一个采样电阻和采样电容,当然了后面还有逐次逼近式的转换电路。从波形图里可以看到是一个向下的毛刺,当然如果ADC在扫描模式采样多个信号时,也可能出现电容对外放电,则会出现向上的毛刺,比如下图这个波形。
2023-12-17 20:41:39
1278
5
原创 NE555芯片
当2脚接入左边电压比较器的反向输入端 大于1/3vcc,也就是大于A点接入的同向输入端,可以得到输出端为低电平,也就是数值0;然后根据RS触发器真值表得出q为0,q非为1,又因为q非接反向器到3脚,所以3脚为0。再下面这两个绿色的元器件,这个叫做电压比较器,它有3个端口,负号是反向输入端,正号是同向输入端,下面是输出端。主要是看RS触发器真值表,数值1代表高电平,0代表低电平,Q和Q非为相反的输出。不稳定的意义是s和r均为1时,q和q非输出相同,这是在设定上不能存在的条件,是不合法状态,所以叫不稳定状态。
2023-12-16 21:15:57
4086
原创 devc++如何建立一个c++项目?devc++提示源文件未编译?
点击文件-> 新建->项目,这一点应该不难,主要是最后这个选择什么?如果不能解决,那就是可能路径的问题,路径最好不要适用中文。打开devc++ APP后是这样的界面;devc++提示源文件未编译?点击工具->编译选项;
2023-12-16 11:12:43
1851
1
原创 RF模块是如何工作的?
接下来说下射频接收器,仔细看下这些引脚,射频接收器模块有四个引脚:即vcc,vcc引脚使用稳定的5v电源,此模块的工作电流小于5.5mA,第二个引脚是数据引脚,用于接收数据,第三个引脚是地线引脚,接受到的信号然后被调制以获取数据,并通过数据引脚发送出去。让我们看下RF接收器中的组件 ,同样有一个433兆赫的晶体振荡器,还有一个电压调节器,有一个HT12DIC,它是一个解码器集成电路,将RF接收器接收的串行数据转换为42位并行数据,并相应的驱动输出。中间引脚是用于传输信号的数据引脚,第三个引脚是地线。
2023-12-15 22:36:43
1076
原创 电路中各种接地的用途和含义
DGND是数字地,数字地线DGND,显示就是相对模拟地线AGND而言,主要是用于数字电路部分,之所以设立数字地线DGND,是因为数字电路具有一个共同的特点,都属于离散型的开光量信号,只有数字“0”和数字“1”区分。模拟电路中一般会有两种地,分别是信号地和模拟地。由于信号是模拟信号,是微弱信号,很容易受到其它电路的大电流影响,如果不加以区分,大电流会在模拟电路中产生大的压降,会使得模拟信号失真,严重可能会造成模拟电路功能失效,所以在模拟电路中引入模拟地,可以减少噪声和交叉干扰,提高电路的稳定性和准确性。
2023-12-11 23:17:42
5086
原创 C++ Primer Plus----第十一章--使用类
一般来说,访问私有类成员的唯一方法是使用类方法。C++使用友元函数来避开这种限制。要让函数成为友元,需要在类声明中声明该函数,并在声明前加上关键字friend。C++扩展了对运算符的重载,允许自定义特殊的运算符函数,这种函数描述了特定的运算符与类之间的关系。运算符函数可以是类成员函数,也可以是友元函数(有一些运算符函数只能是类成员函数)。要调用运算符函数,可以直接调用该函数,也可以以通常的句法使用被重载的运算符。1argument-list表示该运算符的操作数。
2023-12-11 16:17:32
486
原创 绘制6层及以上PCB板,需要明白PCB板的结构和叠层
下图是一个六层板叠层结构,分别为顶层、地层、信号层2、电源层、地层、底层,顶层和底层属于信号层,这个是六层板常用的叠层结构。这种叠层方案可得到较好的信号完整性,信号层与接地层相邻,电源层与接地层配对,每个走线层的阻抗都能够较好控制,且两个地层都可良好的吸收磁力线。第二种叠层方案只适用于器件密度不是很高的情况,这种叠层具有上面叠层的所有优点,并且这样顶层和底层的地平面比较完整,可以当做一个较好的屏蔽层来使用。第二,每个信号层都与内电层直接相邻,与其它信号层均有有效的隔离,不易发生串扰;
2023-12-06 22:24:45
2137
原创 电烙铁为什么焊接不了电池,不沾锡?
上述这种问题对于不知情的初学者来说是很常见的,一般我们需要注意两个地方,第一是我们选择的电烙铁功率一定要稍微大一点,一般比较常见的是60w,这里选择50w左右即可,如果是说是20几、30几瓦的那就不要想了,肯定是不行的。因为它功率小,发热速度太慢,温度太低。在我们焊接电池两极的时候,总是会碰到这种情况,焊锡虽然融化了,但是这个焊锡丝沾不上去,一拿开烙铁,锡丝没有沾在电池极性上而是变成小球了,因为电池这个极性是不锈钢的。最后补充一个,这个锡线也是有讲究的,有的锡线里本身就有松香,相对没有松香的是要好焊的。
2023-12-05 22:00:26
1445
原创 电子初学者,必须掌握的几种焊接方法
焊接电路板时,一般从最矮小的元件开始焊,比如电阻,电烙铁温度300°左右为宜。它虽然也可以调温,但是不恒温,功率还小,回温慢,开久了容易温度过高,容易把焊盘弄掉,初学者是极不推荐的,一点都不友好。焊接电池时,电池(就是遥控器里那种5号或者7号的电池)散热很厉害,这时烙铁头温度需要调到400°以上,烙铁功率80w以上,焊的一定要快,不然容易影响电池的寿命,甚至就嘭的爆炸了。因为铜丝表面有氧化层,这时候就需要松香或者助焊剂了,松香是中性的,不会产生任何反应,它们可以除去焊接表面的氧化层,还可以让焊点更加圆润。
2023-12-04 22:08:12
1451
原创 为什么你焊接不好电路板?
焊接贴片元件的电烙铁要选择一个防静电的恒温可调温电烙铁,看一下下面这个芯片,它是一种QFP封装的ARM处理器芯片,引脚间距比较小且很多,焊接难度是比较大的。这是因为芯片中多数都是集成的MOS管,MOS管对静电是非常敏感的,普通烙铁头部积累静电,可能在焊接的过程中就把芯片的MOS管击穿损坏了。像图中的这个芯片耐温是260°,所以焊接的时候烙铁头与芯片的基础最高不要超过10s,如果是350°那就不要超过3s了,这些都是需要注意的地方。再来看下面这个芯片,所以一般来说,都是先固定芯片,然后再焊接。
2023-12-03 23:19:34
522
原创 MOS管的静电击穿问题
上面我们说到一个点,也就是mos管的工作环境,在静电场较强的环境中,空气中的离子和电荷会较多,从而增大了增加静电的积累和放电的可能性,也就进一步增加了mos管受到静电损坏的风险。现在回到问题本身,mos管是一个ESD敏感器件,由于本身的高输入电阻,再加上栅-源极间的电容非常小,导致它极易受外界电磁场或静电的感应而带电。一般静电击穿有两种,一是电压型,即栅极的薄氧化层发生击穿,形成针孔,使栅极和源极间短路,或者使栅极和漏极间短路;MOS管的输入电阻指的是在栅源之间,当栅极电压变化时,源极电流的变化率。
2023-12-01 22:05:08
2576
原创 为什么不是所有的BUCK电路都有续流二极管?
下图是buck电路的原理图,可以看到,当S1导通时,电流开始从左边的电源正极流出,流向负极;第二,电路拓扑,不同的buck电路拓扑可能需要不同的元件配置,例如基础的buck拓扑使用续流二极管,而更先进的拓扑,如同步buck转换器,则可不使用续流二极管,同步buck转换器使用另一个开关管来代替续流二极管,以提高效率,因为它能减少能量损耗。第三,输出电流需求,若buck电路的输出电流较小,那么可能不需要特殊的续流路径,这可以减少元件成本和复杂性,但在高电流应用中,续流二极管可用于处理更大的电流,减少功率损耗。
2023-11-30 23:37:54
1534
原创 GPIO的输出什么时候用开漏?什么时候用推挽?
所谓线与,指的是它们任意一开关只要对地导通,这根线就一定是低电平。首先要了解开漏和推挽的区别,开漏只能输出低电平,如果需要输出高电平就需要外部上拉电阻来实现;而推挽则既能输出高电平也能输出低电平,不需要依赖外部的上拉电阻。第一种情况,外部有上拉电阻,根据你的电路设计,如果需要输出高电平,就可以选择开漏;第二种情况,外部没有上拉电阻,这时候就必须要选择推挽了,因为如果选择了开漏,那么就无法输出高电平。第三种情况,多个IO口输出连接到一个输入口,这种情况就必须要选择开漏,因为它有“线与”的功能。
2023-11-30 00:13:01
1251
原创 单片机BootLoader是咋回事?
说明一下应用程序的首地址是这个应用程序的一个启动函数,启动函数是一个工程启动文件,相信学32单片机的时候都接触过有一个叫做启动文件的东西,有堆栈的建立,静态数据的存储,向量表的建立,这些基础工作做完,才会跳转到这个main函数,执行的才是用户自己的代码。有的产品有升级的需要就需要BootLoader了。单片机一上电,PC指针指向0x00000000地址所在的一块内存,加载一个需要跳转的地址,这个地址可以是应用程序的地址,也可以是BootLoader的地址,是哪个地址根据开发阶段的不同有所不同。
2023-11-28 22:08:46
1045
原创 为什么PCB板大多数都是绿色的?
第四,最初研制的油墨 基础材料是环氧树脂,这是一种棕黄色的树脂,而固化剂的颜色则是更深的土褐色,它们混合在一起的颜色就和屎一样,这颜色令人作呕,没人喜欢。第三,绿色眼睛看着舒服,这个理由其实还是蛮有道理的,绿色眼睛看着不累,而且配白色图标或文字对比度刚刚好,对长时间看电路板的人十分友好。因为绿色便宜,绿色油墨最早出现,最早大规模生产,工艺最早成熟稳定,占领大部分市场后,形成产业链,不断的扩大产量降低了成本,用户数量越来越多,反过来形成马太效应,使强者更强,把别的颜色产品搞得没法生存。
2023-11-26 22:20:32
660
原创 晶振频偏过大怎么办?
第三个是电路设计问题,晶振电路的设计不合理,如负载电容反馈电阻选置不当,可能导致晶振工作在非预期状态,产生较大的频率偏差。解决方案对当前晶振电路设计进行优化,合理选择晶振电路的负载电容、反馈电阻等参数,确保晶振工作在预期状态,同时合理布局布线减小电路对晶振的影响。第四个是晶振外部干扰,逃不开的电磁干扰、机械振动等外部因素,可能影响晶振的输出频率,特别是高频电磁干扰,容易引起晶振频率的抖动。第二个就是晶振工作环境因素,温度湿度气压等环境因素会影响晶体的机械特性,从而导致频率偏差,其中温度是最主要的影响因素。
2023-11-25 23:41:45
692
原创 IO口速度影响了什么?
I/O口的输出速度指的是高低电平翻转的最快频率,比如你配置的是10MHZ,f = 1/T,那么这个时间周期T就等于100ns。为了保障输出的信号波形不失真,能够正确的被识别到,那么tr+tf <= 2/3T才可以,所以频率越高,单片机就要将tr和tf控制的越小。并不能只能单纯的讲单片机,还要配合单片机IO口驱动的负载。我们在初学单片机的时候都知道单片机GPIO的作用是巨大的,在配置GPIO的时候,结构体初始化里有一个选项是配置输入输出速度的,对于这个速度输出是必须要配置的,输入没有明令说明需不需要配置。
2023-11-24 22:28:45
1622
原创 晶振有哪几种?晶振旁边的两个电容起什么作用?
假设C2过小,反馈电压过高,储存能量过少,容易受外界干扰,也会辐射影响外界。C1的作用对C2恰好相反,因为我们布板的时候,假设双面板,比较厚的,那么分布电容的影响不是很大,假设在高密度多层板时,就需要考虑分布电容,尤其是VCO之类的振荡电路,更应该考虑分布电容。很多时候大家用的是32.768K的时钟晶振来做时钟,而不是用单片机的晶体分频后来做时钟,这个原因就是和晶体的稳定度有关,频率越高的晶体,Q值一般难以做高,频率稳定度不高,32.768K的晶体稳定度等各方面都不错,形成了一个工业标准,比较容易做高。
2023-11-22 22:41:04
593
原创 芯片IO口不加电阻会怎样?
具有过温保护、短路保护和过压保护。1.高电流问题,IO口没有电阻限流,当与外部设备直接连接时,就可能会导致过大的电流流过IO口,这就可能损坏IO口,引起短路或烧坏其它电路组件。电平不稳定,在特定情况下,IO口可能会出现电平漂移或抖动,由于没有电阻来稳定电平,IO口的电压可能就会受到其他因素的影响(例如电源波动,电磁干扰等), 导致点平不稳定或不可预测。2.信号干扰,IO口在没有电阻的情况下,可能会受到周围电磁干扰的影响,导致信号不稳定或误读,这样可能会对数据传输、通信或其它与IO口相关的功能产生负面影响。
2023-11-21 22:50:28
806
空空如也
基于stm32的lcd1602不显示东西的问题?
2021-07-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人