keil程序怎样修改别人工程的只读
复制代码到一个新建的txt文件中,更改后缀名为.bat,放到任意文件夹下。
@echo off
attrib -A %1 /s
for /f %%a in ('attrib %1') do (if "%%a"=="R" (attrib -R %2 /s echo Unlocked) else (attrib +R %2 /s echo Locked))
exit
3.2 设置
打开Keil的tools-customize tools menu菜单可以添加用户自定义的菜单选项。如下图所示:
Menu Content:锁定当前文件
Command:C:\Software\Keil_V5\Tools\更改只读属性\lock.bat
Arguments:!E !E
Menu Content:锁定所有文件
Command:C:\Software\Keil_V5\Tools\更改只读属性\lock.bat
Arguments:%P
记得勾选Run Minimized项,这样就不会有批处理的黑窗弹出。
4. 相关说明
4.1 批处理相关知识
4.1.1 显示或更改文件属性。
ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S [/D]]
+ 设置属性。
- 清除属性。
R 只读文件属性。
A 存档文件属性。
S 系统文件属性。
H 隐藏文专件属性。
[drive:][path][filename]指定要处理的文件属性。
/S 处理当前文件夹及其子文件夹中的匹配文件。
/D 也处理文件夹
4.1.2 给批处理脚本传递参数
批处理文件中可引用的参数为%0-%9,%0是指批处理文件的本身,也可以说是一个外部命令;%1-%9是批处理参数,也称形参。我们来新建一个文件,文件命名为test.bat,文件内容如下:
@echo off
echo param[0] = %0
echo param[1] = %1
echo param[2] = %2
echo param[3] = %3
echo param[4] = %4
echo param[5] = %5
echo ...
pause
在控制台运行,并且处传入参数,运行结果如下:
test.bat 1 2 3 4
param[0] = test.bat
param[1] = 1
param[2] = 2
param[3] = 3
param[4] = 4
param[5] =
...
请按任意键继续. . .
pausenul和pause
pause就是暂停命令,执行时会在命令行窗口显示请按任意键继续. . .并等待你按键。pause nul的作用是同样的,区别是不显示请按任意键继续. . .这些字,nul相当于空文件,把这些文字隐去了。同样是等待你按键。
是重定向符(将输出的内容重定向到其它的设备),例如echo hello c:\1.txt把hello 重定向到c:\1.txt,如果c:\1.txt不存在则新建。nul 是空设备。
echo off关闭回显;@echo off加了@就是连本身也不显示。
4.1.3 Bat批处理之for详解
FOR /F ["options"] %variable IN ('command1') DO command2 [command-parameters]
for、in和do是for语句的关键字,它们三个缺一不可;
in之后,do之前的括号不能省略;
关于%variable要注意:%a,%%a 是for循环时用的。%a 是在CMD直接执行时用的,%%a是在BAT脚本中用的。%a%是普通变量。
options可以为:delims=XX(指分隔符集);tokens=x,y,m-n(指每行的哪一个符号被传递到每个迭代的 for 本身);skip=n(指在文件开始时忽略的行数)。
参数/f的效果:for会先读出command1执行后得到的所有结果,并把它作为一个集合,并且以每一行作为一个元素传入参数%variable。
4.1.4 批处理顺序执行多条命令
命令1 命令2 命令3 ... (无论前面命令是否故障,照样执行后面)
命令1 命令2 命令3....(仅当前面命令成功时,才执行后面)
命令1 || 命令2 || 命令3.... (仅当前面命令失败时,才执行后面)
4.1.5 Bat批处理之if详解
判断字符串是否相等的时候,if会区分大小写。若不想区分大小写,则需要if /i "字符串1"=="字符串2" 的格式。
判断两个数值之间的大小关系时,由于在批处理中和为重定向符号,这就意味着我们不能用来表示大于,表示小于。
修改了keil复制后的工程,原来被复制的工程也被修改了,有没有办法只修改复制后的工程不修改原工程?
把原来工程1所在的文件夹,复制到工程2文件夹,变成两个独立的文件夹,最好文件夹分别命名为工程1,工程2,便于区分。想修改工程2,就打开工程2的文件夹里的工程文件:随便修改。记得打开keil时,关闭原工程文件。这样,工程1文件夹里的文件就不会变动了。
如何用keil5新建STM32 新工程
2.创建一个Demo文件夹
2.1 新建子文件夹User,用于存放用户源程序
2.2 新建子文件夹Project,用户KEIL工程文件
2.3 在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件。
3. 复制源代码到Demo文件夹
3.1 将stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Lib_V3.1.2Libraries文件整体复制到Demo文件夹下。这就是ST的标准库,是以源代码形式提供的。
3.2 将库中的演示代码IOToggle中的文件复制到Demo\User文件夹.
4. 新建一个Keil MDK工程
4.1 启动Keil MDK,点击菜单 New uVision Project,然后按向导进行操作
4.2 选择CPU类型为 STM32F103ZE (这是安富莱STM32开发板采用CPU类型)
4.3 当提示是否复制启动代码时,请选择否。(我们用最新的库中的启动代码,不用Keil软件自带的旧版本启动文件)
4.4 根据自己的需要修改Target名字。(名字任意)
4.5 为了便于代码管理,在这个Project下创建几个Group (名字可以任意)
User : 存放用户自己写的源代码
RVMDK : 存放启动文件(汇编文件)
StdPeriph_Driver : 存放ST标准库文件
CMSIS : 存放CMSIS接口文件(这也是库的一部分)
4.6 创建好Group后,我们开始依次添加文件。
5. 修改源代码。我们将修改main.c 文件,换成我们自己跑马灯程序。
6. 配置工程, 点击“Options”按钮
6.1 切换到Output。
选择Object文件夹。
在Create Hex File 前打钩。
6.2 切换带Listing。
选择Listings文件夹
6.3 切换到C/C++
添加两个预编译宏 STM32F10X_HD, USE_STDPERIPH_DRIVER (这是ST库用到了这两个宏)
修改Includes路径
6.4 切换到Debug
选择硬件调试器(缺省是软件仿真),我们选择Cortex-M3 J-Link调试器
再 Run to main前打钩
6.4 切换到Utilities
选额调试器类型,我们选择Cortex-M3 J-Link
点settings按钮,添加Flash编程算法,我们选择STM32高密度器件,Flash容量512K字节
7. 配置工程完毕。下面开始编译。
8. 编译OK,开始调试。
9. 教程结束。
为什么keil5工程文件内会出现主机名字
没什么好惊讶的。针对不同的用户保存不同的GUI配置。
百度嫌我字数不够
keil新工程“命名”规则?
keil工程名可以用汉字的,就输入“基于单片机的温湿度控制器”这些字是可以的,不过,最好还是不用汉字做工程名或文件名。