注意事项:很多带“_s”后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,有时黑客可以利用原版的不安全性黑掉系统。比如:char d[20];写成scanf_s("%s",d,20);才是正确的,有这个参数20使准确性提高。
同时按shift+f键----出现十字架后---点击你要改变的元件---出现对话框------把component comment-后的ANY改为same点击确定----出现PCB inspector后找到Text Hight和Text Wideth 直接更改后面值的大小即可
原理图:单击右键——options——document options——standard styles中选E,E是最大的,不过打印的时候没有E大小的纸张,C纸张倒是可以打印的
PCB:在英文状态下按数字1(带感叹号的那个)——Design——Redefine Board Shape——屏幕变绿——用鼠标画出你要的大小——按数字键2退出
https://jingyan.baidu.com/article/8cdccae9bc9a65315413cde2.html
首页
在Altium Designer中画PCB时隐藏电气连接线可以让整体布局显得不是那么的杂乱无章,在一定程度上方便布线,具体方法如下:
1)使用快捷键 L 调出视图设置窗口;
2)找到右侧System Colors 一栏;
3)找到Default Color For New Nets,将后面的勾去掉。
确定后电气连接线就会隐藏,如果想取消隐藏请按照同样的顺序勾选就可以了。
分享Altium PCB布局时快速摆放元件的技巧
http://www.openedv.com/posts/list/45238.htm
http://www.keil.com/dd2/Pack/eula-container
http://www.keil.com/dd2/Pack/#/eula-container
http://www.openedv.com/forum.php?mod=viewthread&tid=102469
把Keil_v5的安装盘的安全属性改为完全控制,在安装就可以了。
Opencv
https://zhuanlan.zhihu.com/p/32473762
https://zhuanlan.zhihu.com/p/35316731
没有指定输出名称,请检查“选择目标域
FCARM,是个打包程序,把各种不是.c文件但内含c程序的东西转成.c文件,正常是用不到的,所以一般项目的编译器都未设置它的输出,所以意外使用,它就报错. RL-ARM的指导手册HTTP那一章,有讲FCARM工具的用法
看看添加的lib文件是不是 lib后缀名,或者说编译器是否把它识别为lib文件,
往项目管理器添加文件的时候,文件类型是不是手滑 选成了Image file,然后刚好 你要的文件又显示了出来?
//仔细查看添加的文件,在property中应该是把C source file添加为image file(镜像文件)了
(下拉.c, 选择.s 一类的即可)
一个函数如果这样定义:f(int x)这说明没定义返回值,默认是可以返回int的,当然,如果f函数中没有return语句,那么会返回一个乱七八糟的整数,这样不利于编译器识别错误,比如说你有这样一个语句a=f(1)编译器就识别不出来错误的,仍然认为你是对的
但如果你写成void f(int x)那么就告诉编译器这个函数禁止有返回值,那么你写a=f(1)的时候编译器就知道这是错的,然后提示你
因此,没有返回值的函数要用void,这是好的习惯(虽然不用也不出错)
用keil4编译提示 warning: #1-D: last line of file ends without a new
最后一行回车后还要保证是在第一列,新一行不能有空格等空字符才能不出此警告
STM32程序中,vu32 n=2000000;
volatile unsigned long n = 2000000;
使用volatile声明变量值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。精确地说就是,遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问;
MKD 报错:
linking...
LCD.axf: Error: L6218E: Undefined symbol EnZK (referred from ht128x64.o).
LCD.axf: Error: L6218E: Undefined symbol GetFlashCnBuf (referred from ht128x64.o).
解析:Undefined symbol EnZK,翻译过来就是:EnZK 这个符号没有定义,随后的小括号告诉你了,是在 ht128x64.o 这个文件里面被提及的,这个.o文件在工程里面并没有,它是一个在编译的时候根据.c/.s文件生成的。所以我们只需要找到工程里面的.s或者.c即可,这里对应这个名字的就是 ht128x64.c 了。
因为ht128x64.c文件中调用了EnZK没有定义,解决办法:(1)在外部.c文件中定义EnZK;
(2) 把ht128x64.c文件中关于EnZK的部分注释掉;
同理:引用自http://blog.sina.com.cn/s/blog_4d1854230101a0q0.html
led_blink.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f0xx.o).
此问题错误提示已经十分清楚的告诉你错在哪里了,Undefined symbol SystemInit ,翻译过来就是:SystemInit 这个符号没有定义,随后的小括号告诉你了,是在 startup_stm32f0xx.o 这个文件里面被提及的,这个.o文件在工程里面并没有,它是一个在编译的时候根据.c/.s文件生成的。所以我们只需要找到工程里面的.s或者.c即可,这里对应这个名字的就是 startup_stm32f0xx.s了。
在此文件里面可以找到SystemInit的所在:
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT __main
IMPORT SystemInit
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
原来在复位中断服务函数里面,调用了SystemInit这个函数,而这个函数在.s文件里面没有定义。
所以解决的办法有两个。
1,在外部(其他任何.c文件里面)定义SystemInit这个函数,哪怕是个空函数也可以。
2,把
IMPORT SystemInit
LDR R0, =SystemInit
BLX R0
这三句话注释掉。
SystemInit 是在使用main前做一些初始化工作,如果不需要官方的库,只是自己编写一些简单的应用,则可以把此函数禁掉。譬如创建工程时直接加入s文件,剩下的自己简单编程,此时就不要SystemInit。
error: #268: declaratio
目录
问题:在注释遇到意外的文件结束
Altium Designer 中在PCB环境下怎么一次性修改元件标号字体大小?
altium designer怎么调节原理图和pcb纸张大小
PCB设计规则的导入导出
在Altium Designer软件中怎样隐藏电气连接线
Keil.STM32F1xx_DFP.1.0.5 Cannot copy PDSC file to ".Download"folder的解决之道
FCARM - Output Name not specified, please check 'Options for Target - Utilities'解决方法
在C语言中为什么很多被调函数之前要加void?
XXX.axf: Error: L6218E: Undefined symbol xxx (referred from xxxx.o)
error: #268: declaration may not appear after executable statement in block
error: #5: cannot open source input file "core_cm4.h": No such file or directory
n may not appear after executable statement in block
uint8_t *pTxBuf = tx_buf;
error: #268: declaration may not appear after executable statement in block
uint16_t data_len = 6+len;
解决办法:变量声明不允许出现在语句之后.这种在语句之后声明变量的方式,c++允许,现在的很多c编译器也允许。
最早的c是不许这么写的,要求所有的局部变量必须在函数开头声明。
把uint8_t *pTxBuf = tx_buf;uint16_t data_len = 6+len;这两行移到函数最开