Keil 拓展技巧整理
题外话:
5202年了,哥哥们,5202年了啊!
还有很多新人在用 KEIL 我就很绷不住了,连KEIL都用不明白我就更绷不住了了。
一个电脑装他喵三个keil,c251一个,c51一个,arm一个。
字体默认宋体说是改不了,改不了你不会搜啊!
还有字体乱码就扔那不管接着写的,然后一个文件整出三种编码来,是人干的事啊!
如果我做的有什么不对的请让法律来审判不要让我看你们的电脑桌面和代码!
一、如何一个KEIL写多种芯片
C251 和 C51 的 Keil 更新很少,版本是比较旧的。
Arm 的 Keil 更新比较频繁,版本是比较新的。
所以你只需要先安装Keil C251,再覆盖安装Keil C51,最后用 Arm Keil 再覆盖安装一遍。
就能一个 Keil 同时支持 C251、C51、Arm 了,新建项目选 Device 的弹窗,下拉菜单选legacy 就是C251和C51,选Software pack就是 Arm ,如果你买的 STC 的芯片,STC-ISP 添加的支持也会显示在这里。
二、新版 Keil 运行不了旧版 Keil 的项目怎么办
那是因为编译器从 AC5 升级到AC6了。
去 Arm官网下载 AC5 编译器,不会翻墙就去我网盘。 提取码: ys1x
找到 Keil 安装目录,找到 Arm 文件夹,新建一个文件夹起名叫 Arm_Compiler_5.06u7
把下载的 AC5 安装到里面。
然后点击工具栏的三色方块按键,选择Folders/Extensions页,点击中间右侧的三个点
![![[Pasted image 20250912111934.png]]](https://i-blog.csdnimg.cn/direct/2c7674c809e44106bf1c6ef8bf04ca2d.png)
点击Add another Arm Compiler Version to List,选择安装了AC5的Arm_Compiler_5.06u7文件夹,就完成了编译器的添加。
![![[Pasted image 20250912112134.png]]](https://i-blog.csdnimg.cn/direct/22c0d3de160f45009d2ceeebbefa0b3b.png)
这时候关掉窗口,再点击工具栏的魔术棒,target页就可以选择AC5了
![![[Pasted image 20250912112642.png]]](https://i-blog.csdnimg.cn/direct/6ed8fa229be94d85bc3eb41d77a8365b.png)
三、Keil 修改不了字体怎么办
首先打开设置Edit->Configuration
把那个天煞的Chinese GB2312(Simple)改成UTF8!
且不说5202年了,编程的编码该统一格式了,你换不了字体也是因为这个编码下Keil给你锁定宋体。
然后把下面的use monospace font关了——编程使用等宽字体是好事,但是它这个use monospace font不知道为什么会把一些等宽字体也判成非等宽…
![[Pasted image 20250912113523.png]]
再然后就可以自由的选择你的字体了(请仅使用等宽字体)。
四、Keil 中文乱码怎么办
- 安装 Python
- 到 keil 安装目录新建一个
explugins文件夹 - 新建一个文件重命名为
gb2312toutf8.py,输入以下内容
import sys
import os
import shutil
def force_gb2312_to_utf8(file_path, use_bom=False, create_backup=True, unify_newlines=True):
"""强制将文件按GB2312编码转换为UTF-8,统一换行符"""
try:
# 以二进制模式读取文件
with open(file_path, 'rb') as f:
content = f.read()
except Exception as e:
print(f"[错误] 无法读取文件: {file_path}, 错误: {e}")
return False
# 创建备份
if create_backup:
backup_path = f"{file_path}.bak"
try:
shutil.copy2(file_path, backup_path)
print(f"[信息] 已创建备份: {backup_path}")
except Exception as e:
print(f"[警告] 创建备份失败: {e}")
# 强制按GB2312解码,错误字符用替换标记处理
try:
decoded_content = content.decode('gb2312', errors='replace')
except Exception as e:
print(f"[错误] GB2312解码失败: {e}")
# 逐字节处理
decoded_content = ""
for byte in content:
try:
decoded_content += bytes([byte]).decode('gb2312')
except UnicodeDecodeError:
decoded_content += f"[0x{byte:02X}]"
print("[警告] 使用逐字节解码模式,部分字符可能被替换为十六进制标记")
# 统一换行符(核心修复)
if unify_newlines:
# 先将所有换行符标准化为\n
decoded_content = decoded_content.replace('\r\n', '\n').replace('\r', '\n')
# 根据目标系统选择换行符(这里默认保留\n,Windows可改为\r\n)
# decoded_content = decoded_content.replace('\n', '\r\n') # Windows专用
print("[信息] 已统一换行符")
# 写入UTF-8文件
try:
with open(file_path, 'w', encoding='utf-8-sig' if use_bom else 'utf-8', newline='\n') as f:
# newline='\n' 确保写入时使用一致的换行符
f.write(decoded_content)
print(f"[成功] 已强制转换为UTF-8{'-sig' if use_bom else ''}")
return True
except Exception as e:
print(f"[错误] 写入文件失败: {e}")
if create_backup and os.path.exists(backup_path):
try:
shutil.copy2(backup_path, file_path)
print("[信息] 已恢复原始文件")
except:
print("[错误] 恢复原始文件失败")
return False
if __name__ == "__main__":
if len(sys.argv) < 2:
print("[错误] 请提供文件路径")
print("用法: python convert_gb2312.py <文件路径> [--bom] [--no-backup] [--keep-newlines]")
sys.exit(1)
file_path = sys.argv[1]
use_bom = '--bom' in sys.argv
create_backup = '--no-backup' not in sys.argv
unify_newlines = '--keep-newlines' not in sys.argv # 新增:保留原始换行符
if not os.path.isfile(file_path):
print(f"[错误] 文件不存在: {file_path}")
sys.exit(1)
if not force_gb2312_to_utf8(file_path, use_bom, create_backup, unify_newlines):
sys.exit(1)
- Keil顶部菜单栏打开
Tool->Customize Tool Menu,新建一行随便起名,下面Command选择刚才创建的 py 文件,然后在最前面手动加上python(注意python后有一个空格)。 - Arguments栏输入
#E - 之后遇到中文乱码文件,点击
Tool->你自己起的名字即可。
五、Keil 自动格式化当前文件
- 下载 astyle 解压到
explugins文件夹(上一步创建的,没有的话自己建一个) - Keil顶部菜单栏打开
Tool->Customize Tool Menu,新建一行随便起名,下面Command选择astyle.exe - Arguments栏输入
-n !E --style=allman -p -s4 -S -f -xW -w -xw - 遇到缩进不规整等需要排版的文件,点击
Tool->自己起的名字即可自动排版。
六、Keil 怎么生成 bin 文件
方法一、临时生成一次
- 查看编译输出的 axf 文件路径
- 找到那个文件夹,右键打开终端输入
fromelf --bin --output 要输出的bin文件名 你的工axf文件名
方法二、每次编译都自动生成
- 点击工具栏的魔术棒,切换到
User页面 - 勾选最下面的
Run #1,在后面输入`fromelf --bin --output 输出的bin文件路径和文件名 axf路径和文件名
![![[Pasted image 20250914203139.png]]](https://i-blog.csdnimg.cn/direct/060e302d317d4d6181becfa00b444c12.png)


3563

被折叠的 条评论
为什么被折叠?



