F103固件库Keil工程自动拷贝
STM32 使用固件库编程,需要手工拷贝一些固件库文件,写了个python自动拷贝,把《STM32F10x固件库下载与安装说明》文档自动化,就当做个笔记。工程模板只需要建立一次,以后都可以直接使用。
配置这几个参数执行即可
import os
import shutil
import statdef mkdir(path):# 去除首位空格path=path.strip()# 去除尾部 \ 符号path=path.rstrip("\\")# 判断路径是否存在# 存在 True# 不存在 FalseisExists=os.path.exists(path)# 判断结果if not isExists:# 如果不存在则创建目录# 创建目录操作函数os.makedirs(path)#print(path+' 创建成功')return Trueelse:# 如果目录存在则不创建,并提示目录已存在#print(path+' 目录已存在')return Falsedef rmdir(dir):#判断是否是文件夹,如果是,递归调用rmdir()函数if(os.path.isdir(dir)):#遍历地址下的所有文件及文件夹for file in os.listdir(dir):#进入下一个文件夹中进行删除rmdir(os.path.join(dir,file))#如果是空文件夹,直接删除if (os.path.exists(dir)):os.rmdir(dir)#print(dir,"文件夹删除成功")#如果是文件,直接删除else:if(os.path.exists(dir)):os.chmod(dir, stat.S_IWRITE)os.remove(dir)#print(dir,"文件删除成功")#配置项
ProjectName="F103C8T6"
ProjectDir=r"D:\test"
LibDir=r"D:\STM32F10x_StdPeriph_Lib_V3.5.0"#执行代码
ProjectDir=os.path.join(ProjectDir,ProjectName)
rmdir(ProjectDir)
DirList=["CMSIS","Lib","User"]
for Dir in DirList:mkdir(os.path.join(ProjectDir,Dir))
#####CMSIS
CMSISFileList=[r"Libraries\CMSIS\CM3\CoreSupport\core_cm3.h",r"Libraries\CMSIS\CM3\CoreSupport\core_cm3.c",r"Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h",r"Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c",r"Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h"]
for File in CMSISFileList:source = os.path.join(LibDir,File)target = os.path.join(ProjectDir+"\\"+"CMSIS",os.path.basename(source))shutil.copy(source, target)
#####Startup
StartupDir=r"\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm"
shutil.copytree(LibDir+StartupDir, os.path.join(ProjectDir,"Startup"))
#####Lib
shutil.copytree(LibDir+r"\\Libraries\STM32F10x_StdPeriph_Driver\src", os.path.join(ProjectDir,"Lib\src"))
shutil.copytree(LibDir+r"\\Libraries\STM32F10x_StdPeriph_Driver\inc", os.path.join(ProjectDir,"Lib\inc"))
#####User
UserFileList=[r"Project\STM32F10x_StdPeriph_Template\main.c",r"Project\STM32F10x_StdPeriph_Template\stm32f10x_conf.h",r"Project\STM32F10x_StdPeriph_Template\stm32f10x_it.c",r"Project\STM32F10x_StdPeriph_Template\stm32f10x_it.h"]
for File in UserFileList:source = os.path.join(LibDir,File)target = os.path.join(ProjectDir+"\\"+"User",os.path.basename(source))shutil.copy(source, target)
F103固件库Keil工程自动拷贝相关推荐
- 【STM32】手把手固件库开发工程建立
再来复习一遍固件库开发方式的工程建立方法吧 -----针对STM32F10x系列(示例为F103C8T6,开发环境为MDK5) 目录 1 创建工程 2 在工程文件夹中手动创建四个文件夹 3 在固件库文 ...
- 使用keil5的固件库建立第一个STM32工程
这里小编使用STM32F103ZET6型号开发板为例,给大家介绍使用keil5的固件库建立一个LED灯闪烁的工程.这种方式简单直接易上手,特适合某些想偷懒或赶时间编程的朋友. 一.步骤: 第一步,选择 ...
- stm32f407固件库移植ucosii_v2.92.07
试验原因 在f103固件库上已经移植了ucosii + lwip, 试验过了. 产品板子是f407, 准备重新移植一遍ucosii + lwip. 先从固件库模板上移植ucosii. 上次做过移植试验 ...
- 【STM32】新建基于STM32F40x 固件库的MDK5 工程
00. 目录 文章目录 00. 目录 01. 前提条件 02. 创建工程步骤 03. 系统时钟配置 04. 添加其他功能函数 05. 附录 06. 声明 01. 前提条件 1.1 官方标准固件库 文件 ...
- keil5固件库版本的工程建立
keil5固件库版本的工程建立 一.一个文件夹,如图再建立4个文件夹 二.准库往上图四个文件夹里粘贴 从标准库里面把Libraries里面的两个文件夹全部复制到新建文件夹Libraries里面 三.来 ...
- keil C51如何下载stc固件库
1.用keil打开stc的工程,提示如下错误,没有找到固件库 2.登录stc官网下载isp软件,双击进入 3.开软件后,我们再keil仿真设置那个选项卡下面,点击添加STC仿真驱动到keil中.添加型 ...
- 【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( 拷贝 lib7zr.so 动态库头文件到 Android 工程中 | 配置 CMakeLists.txt 构建脚本 )
文章目录 一.拷贝 p7zip 源码中的头文件到 Android Studio 项目中 二.配置 CMakeLists.txt 构建脚本 1.导入动态库 2.导入头文件 三.完整 CMakeLists ...
- 【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( 拷贝 lib7zr.so 动态库到 Android Studio 工程 | 配置 build.gradle 构建脚本 )
文章目录 一.拷贝 lib7zr.so 动态库到 Android Studio 工程 二.配置 Module 下的 build.gradle 构建脚本 三.参考资料 一.拷贝 lib7zr.so 动态 ...
- STM32 keil如何下载STM32芯片F1/F4固件库 .pack文件
1.用keil打开STM32F407的程序,结果提示下面的问题,就是没有安装固件库 2.然后去keil官网下载对应的固件库,官网地址:https://www.keil.com/ 3.然后选中对应的芯片 ...
最新文章
- 【洛谷P2024】食物链
- 计算机网络安全防护体系研究
- 轻断食是一种科学的减肥方法吗?
- 你以为 CSS 只是个简单的布局?装逼指南了解一下
- .NET 6新特性试用 | 常量内插字符串
- Magento教程 1:免费购物车系统,轻松建立Magento第一步!
- python split()方法_聊聊 Python 的单元测试框架(一):unittest
- 卷积神经网络对咖啡病虫害识别和分割(分割+分类,病害严重程度详细)
- LinQ To XML——用LinQ查询XML
- mysql控制结构_Mysql 控制结构初识
- png2theora.c: undefined reference to `png_sizeof
- matlab如何求解定积分,matlab如何求解定积分
- 自定义View:Android 仿 PS 选色板
- JPA环境下使用Hibernate二级缓存
- 橘子学设计模式之原型模式
- python删除指定元素 多个_Python List remove()删除多个元素
- 7-2 高精度求累加和 分数 25作者 胡伟平单位 广西科技大学
- Python3字典合并的几种方法
- 欧姆龙NJ/NX使用POD映射拓展轴功能块与应用案例
- 【多媒体封装格式详解】---MP4【1】
热门文章
- android system recovery%3csv1.1%3e,【记录】尝试用ODIN去恢复启动界面是Android system recovery 3e的I9100G...
- 【已解决】由于找不到LIBATRIAGU.dll,无法继续执行代码。重新安装程序可能会解决此问题。
- MTK Android HIDL层添加hash值
- 7-47 打印选课学生名单
- 两台win11笔记本扩展屏幕
- 在Ubuntu中安装Windows7虚拟机的一点经验
- keil uvision中添加STC单片机
- 暗黑破坏神4玩不了怎么办?可能是显卡驱动没更新
- 【图吧导航】非常好的手机导航软件Mapbar,支持离线地图下载(就是谷歌地图)...
- 利用拼音查询城市小结