- 博客(55)
- 资源 (1)
- 收藏
- 关注
原创 mathcad如何创建分段函数图形
3)、如何定义分段函数,我们在需要定义一个分段函数的时候,需要在d(t):=之后,从这插入一个Add Line,后续的所有逻辑操作(比如if、else等)都需要在这个“Programing”里面放置,才有效。1)、定义函数时,直接用等号“=”,这样并没有定义一个函数成功,我们必须在y(x)后面加冒号,这样才是一个赋值的操作,才算是成功定义了一个函数。2)、把二维图像放在已定义的函数的同等水平位置甚至之上,这样会报错,正确的做法是在定义完函数之后,再放置X-Y图像,才不会报错。
2022-12-01 11:29:47
4904
1
原创 Altium Designer如何自定义走线宽度以及过孔大小
1:dxp>Preferences(快捷T+P)打开下面对话框,设置自义线线宽与过孔大小。3、接下来你在pcb里面走线的时候就能够按shift+w来选择4mm作为你走线的宽度啦。2、选择添加,这里添加4mm走线作为喜好。
2022-09-12 10:20:50
5981
1
原创 如何基于CCS_V11新建TMS320F28035的工程
首先我们要创建工程的话,需要下载TI的编译器CCS,我这里是安装了CCS_V11版本,关于如何安装,推荐这篇博客:https://blog.csdn.net/qq_36788698/article/details/82913956?ops_request_misc=&request_id=&biz_id=102&utm_term=CCS%E5%AE%89%E8%A3%85&utm_medium=distribute.pc_search_result.none-task-blog-2blogsobaiduwe
2022-06-03 20:54:46
2191
原创 关于51单片机片外拓展RAM寄存器的读写注意
我们在STC8A8K64D4单片机的数据手册上看到如下的描述:红色部分说需要使用拓展RAM区的特殊功能寄存器的话,就要先开启这个EAXFFR位,否则就没法对地址在OXFF之后的特殊寄存器进行访问了
2022-01-23 17:30:21
1014
原创 如何创建在Windows环境下的编译和GDB调试
按照比较方便的形式,首先去下载DEV C++,然后,找到其BIN文件夹,因为GDB.exe就在这个文件夹下的路径中,然后复制路径,我的是:D:\Special Software\DEV_C++\Dev-Cpp\MinGW64\bin,然后点击此电脑->属性->高级系统设置-环境变量点击新建,将BIN文件夹的路径复制进去,然后打开Windows下的命令行工具,输入gdb -v,如果可以看到类似如下的信息,就说明可以进行GDB调试了...
2022-01-15 14:04:05
648
原创 关于拿到手的Altium Designer重新导PCB报错,没有元件封装的解决方法
当我们拿到一份别人的设计文件时,有时候需要重新导入PCB,进行增删查改,但是往往会出现报错,说没有封装,这时候,只需要双击元器件,选择添加封装,将第二栏的PCB Library改为any选项即可解决问题...
2022-01-04 16:26:32
5923
2
原创 STM内核映射
由于STM32单片机,其内核已经将地址映射留下,所以我们在支持FSMC和FMC外设的单片机中,就可以直接将外部存储设备(SRAM、SDRAM等)的地址映射到我们单片机内核的地址中,就不用像操作IIC、SPI器件那样,先写地址位,再使能读写位,从器件数据手册中指定的位置去读写数据,在支持FSMC、FMC外设的单片机中,我们可以用指针取值的方式直接操作外部挂载的SRAM等外部拓展RAM器件...
2022-01-01 15:29:03
2612
原创 MAC快捷键
command+空格:聚焦搜索command+B:在默认的浏览器中搜索你要搜索的内容按住command可以不用将两个界面分开调整大小就可以拖拽文件进去了
2021-12-30 19:11:22
137
原创 分享一个AD元器件位号和封装镜像导致的问题
按理说Q6应该导通的,3脚电压应该是在四伏多,但是,实际测出来却是0伏,元器件手册和PCB如下:对比可以发现,Q6的源极和漏极是反了的,原理图上标号和实际中PCB中是镜像了的,自己以前也遇到过这种问题,像原理图中存在可调电阻,图中这种类似封装的三极管,MOS管的,这是一个解决问题的DEBUG的一个很好的思路或者方向...
2021-12-27 22:04:44
1451
原创 关于KEIL中的Build编译目标的说明
在KEIL软件中,有一栏build的菜单栏,有一个可以输入的文本框在那里,目前是Target1,点击品字形的按钮,可以看到有一个Project targets,我们可以在那里新建不同的target,比如我们新建一个Target2的话,并且点击OK,我们可以在菜单栏看到可以勾选不同的Target了,也就是说选中不同的Target,我们的魔法棒(Options for Target)就可以对不同的编译目标进行编译了...
2021-12-17 22:36:09
1646
原创 开关电源芯片的BST引脚连接的100nF电容的作用
芯片内部由两个NMOS组成的半桥来驱动输出,然而上面那个NMOS要想导通的话,它的栅极电压要大于开启电压+输入电压才行,那么怎么做到这点呢,芯片内部有一个线性稳压器给电容充电,假设充电到5V,此时断开下面的那个NMOS,电容两端就相当于并联在上面那个NMOS的栅极和源极了,电容两端电压不能突变,再加上输入电压Vin,这时候上面那个NMOS的栅源电压就已经满足开启条件可以开启了!...
2021-12-17 13:06:37
3565
原创 关于LCR表和万用表测电容容值不一样的怪事
测试一个25V耐压,4.7uF电解电容的时候,先后用两个不同的万用表测量,测量的容值都是没有问题的,然后再用LCR电桥测试,容值就只有2.多uF了,然后看LCR上面有一个参数“D”,听说测试电容,这个值要小于0.2才正常,但是LCR测量这两个有0.5多,然后调到ESR那一档,测出来的ESR有五百多欧母,这也是不正常的...
2021-12-05 20:42:14
2227
2
原创 关于测试芯片好坏的方法(不一定有用)
可以测试VCC和地的阻值,测量一次后,红黑表笔再反过来测试一次,一般正常情况下,阻值是不一样的。如何在电路板上快速找到“地”呢,上电之后,电压档测试电容两端,看电压,如果是正的,那么,黑表笔就已经接在“地”了!...
2021-12-05 20:37:35
2706
1
原创 高速PCB为什么要进行阻抗匹配
为了减少回拨反射对原来的信号的影响,要做到的要点是:前级输出阻抗=传输线特征阻抗=后级输入阻抗视频中演示中注意同轴电缆外壳是接地的,中心用来传输信号,结合上面理论应该可以更好理解。...
2021-11-17 22:03:15
434
原创 记录关于Altium Designer智能粘贴时,By location模式的一个糟点
如果要按照自己想要的顺序来粘贴像是网络端口啊,线路啊,还有网络标签这种,或者是很多种元素同时使用,就要先设置原理图纸的栅格为100mil,也许其他的大小也可以,不一定是100mil,但是100mil确实解决了问题,粘贴出来的原理图元素不会重叠了!栅格设置100mil和10mil,效果天壤之别!...
2021-09-24 15:39:21
190
原创 Altium Designer的信号连接
图纸包括两种结构关系:一种是层次式图纸,该连接关系是纵向的,也就是某一层次的图纸只能和相邻的上级或下级有关系;另一种是扁平式图纸,该连接关系是横向的,任何两张图纸之间都可以建立信号连接。Altium Designer提供了6类网络标识分别是:Net Label(网络标号),Port(端口),Sheet Entry(图纸入口),Power Port(电源端口),Hidden Pin(隐匿引脚)、Off-sheet Connector(图纸外连接符)。网络标识是通过名字来连接的,名字相同就可以传递信
2021-09-20 13:21:17
998
原创 Altium Designer如何给利用EXCEL表创建的元器件快速添加端口和网络名
首先呢,从EXCEL表格里面复制出来你要的网络名:第二步,到Altium Designer的原理图界面,按住ctrl+shift+v,这是Altium Designer的智能粘贴模式,弹出来一个如下的弹窗:这个弹窗呢,大体上有三列,第一列就是选择你将要去智能粘贴的对象,对象可以是Altium Designer原理图上的对象类型,也可以是你从EXCLE表格上复制在WINDOWS上粘贴板上的内容,可能并不一定是需要是从EXCEL表格上的内容;第二列呢,就是你要把你粘贴板上的内容作为一个什么对象去粘贴,是
2021-09-20 12:38:08
1624
原创 Altium Designer放置差分对导入PCB报错的原因
在原理图中放置了差分对后,再不编译的情况下导入PCB,会报如下错误,后面试了试编译后再导入,但是编译也会报错,顺便一提,编译在原理图界面,Project的第二个选项,那么要如何解决导入PCB报错的原因呢?你要先不要放置差分对,可以先把网络标号改为符合要求的差分对的命名形式,然后编译,导入PCB,然后,我们再回到原理图,放置好差分对,保存,更新到PCB,这样我们的差分对就能够成功导入PCB啦!...
2021-08-09 08:51:55
2957
原创 STM32单片机的GPIO寄存器CRL、CRH、IDR、ODR、BRSS、BRR
STM32的寄存器多如牛毛,要一个一个的弄清楚谈何容易呀,所以我们在学习的时候要抓住重点,挑重要的进行学习和记忆,因为STM32一个一个去配置寄存器的话相当的麻烦,我们实际开发的话也不会一个一个去配置寄存器的,所以我们只需要记住常用的那几个外设的几个寄存器的“用法”和“作用”即可,不要去记它的具体操作。一、CRL和CRH寄存器这两个都是32位的寄存器,因为STM32的话,它的GPIO口不像51单片机一样只有高低电平两个参数,STM32的每个GPIO口都有八种输出方式,通过寄存器配置确定是哪一种方式,除此
2021-07-25 16:41:51
12428
4
原创 对未命名地址操作的解释
经常会见到如下的操作:#define PINMUX3 *( volatile Uint32* )( 0x01C40000+ 0x0C ) PINMUX3 &= ~0x00600000;这里对 ( volatile Uint32 )( 0x01C40000+ 0x0C )这句单独作出说明,( volatile Uint32* )这句是强制转换符,*的优先级是低于()的,所以会优先和( 0x01C40000+ 0x0C )相结合,强制将该地址转换成一个易变类型,放置编译
2021-07-22 11:08:01
132
原创 C语言值传递与地址传递
一、C语言函数的值传递二、C语言函数的地址传递三、局部变量作为函数返回值#include <stdio.h>char *fun(void){ static char buf[] = "helo world!";//这里有没有static会影响输出结果,加上static相当于数据存储在数据区 return buf;}int main(){ char *p; p=fun(); printf("the p is %s\n",p); return 0;}#
2021-07-15 22:18:10
7914
9
原创 关于C语言对const类型修饰变量的说明以及变量存储方式的疑问
在C语言中,使用const关键字修饰的变量代表着其不能被改变,是一个常量,那么在C语言中,其实并没有对于其做到一个很好的保护,使用const变量修饰的变量虽然不能通过直接的赋值操作去改变这块内存的值,如果这样做,编译环境会报错提示不能这样做,不能改变一个常量的值,从而使得编译不通过,但是,我们仍然有办法去改变其值,比如指针越界的方法,通过这个方法,我们可以骗过编译器“间接”修改用const关键字修饰的变量存储区域存储的值,代码如下:#include <stdio.h>int main(){
2021-07-09 12:48:25
367
1
原创 关于GCC
基础命令格式:gcc+空格+命令缩写(windows10在命令提示符中)1、gcc -c查看gcc版本2、gcc -o把对应的C文件生成可执行的EXE文件3、如何改变命令提示符的路径嘞?打开命令提示符,在路径后加入cd.\你想要的路径就好啦4、生成main.exe:gcc -o main.exe main.c这样子,在桌面,就可以看见生成的可执行文件啦5、在windows10环境下使用GCC工具编译C文件的流程如下:首先进入你的main.c文件夹,也就是命令提示符的命令路径要对(
2021-07-03 15:57:04
283
原创 ESP8266烧写更新固件
从wiki页面中选择8266模块组,然后选择出厂AT固件,找到出厂默认AT固件,下载这个文件。https://docs.ai-thinker.com/%E5%9B%BA%E4%BB%B6%E6%B1%87%E6%80%BB选择最下方的出厂默认固件,下载下来,放在E盘或者其他地方,放在桌面可能出现问题会无法下载,ESP8266选择8M的固件,正确连线:在原来使用模块的基础上,增加两根接线——IO0接GND,EN接3.3V,找到下载好的固件,8M对应的是ESP8266—01E:\毕设\模块学习\ES
2021-03-22 21:29:13
2355
原创 什么是PWM死区
PWM是脉宽调制,在电力电子中,最常用的就是整流和逆变。这就需要用到整流桥和逆变桥。对三相电来说,就需要三个桥臂。以两电平为例,每个桥臂上有两个电力电子器件,比如IGBT。这两个IGBT不能同时导通,否则就会出现短路的情况。因此,设计带死区的PWM波可以防止上下两个器件同时导通。也就是说,当一个器件导通后关闭,再经过一段死区,这时才能让另一个导通。什么是死区?通常情况下,大功率电机、变频器等,末端都是由大功率管、IGBT等元件组成的H桥或3相桥。每个桥的上半桥和下半桥是是绝对不能同时导通的,但高速的
2021-03-19 19:13:19
1499
原创 2021-03-12
当发现程序中while(1)循环的效果没有的时候,不一定是代码有问题,而是while(1)之前的代码有“等待查询返回函数”,由于查询一直没有返回结果,便一直在不停的查询,导致程序无法进入while(1)循环内...
2021-03-12 23:46:58
72
原创 如何让keil不编译没有用到的函数以及头文件
在用KEIL C51,经常会遇到定义了的函数未调用,编译时会发出“UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS”的警告,我们不想手动去删除,也不想这部分代码被编译和链接进最终的程序,以免浪费有限的储存空间。方法如下:未设置的情况如下,有编译警告设置如下1.把target options中的device页中选上“use Extended Linker(LX51) instead of BL51”.如下图:2.在LX51 Misc 页中的Misc Con
2021-02-24 09:04:54
4546
1
原创 altium designer如何切换走线形式
按shift+空格键,前提是要切换到美式键盘,哔哩哔哩收藏夹altium designer有一个专门讲这个的视频
2021-02-16 19:49:51
5532
原创 火焰传感器的使用
数字量输出:单片机使用的是STC8A8KS64A12,使用P0^1来读取火焰传感器的状态,火焰传感器的输出使用数字量输出,初始化P0.1为准双向口,当检测到有火焰的时候,数字输出口变为低电平,当没有火焰的时候,是高电平,通过串口打印他的状态:接线图:当有火焰的时候,两个LED灯一起亮起,当没有火焰的时候,只有一个LED灯亮起模拟量输出:因为最终要使用到报警模块,所以采用数字量输出不是一个很好的选择,在模拟量输出方案中,采用这款单片机的ADC模块将模拟量采集值打印到串口,使用的IO为P0.2,
2021-02-09 16:25:57
4195
3
原创 关于KEIL5如何选中STC8系列芯片以及如何去掉编译警告
选中复选框中的STC MCU Database就可以选中STC8A8K64S4A12这款芯片了在如图所示的地方加上NOOVERLAY就可以去掉编译中的警告,不过代码大小并没有改变,可能还是把没有用到的代码段编译进来了,怎么能把没用到的代码段去掉后续补充...
2021-02-09 10:15:11
2613
1
原创 关于volatile的用法解释
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值(因为从寄存器中读取要比从RAM中读取更快,编译器可能会做这样的优化),如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:short flag;void test(){do1();whil
2021-02-09 09:54:21
428
原创 关于如何在word里添加引用
https://jingyan.baidu.com/article/4f7d57121932d41a21192749.html
2021-02-08 15:48:28
640
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人