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工程自动拷贝相关推荐

  1. 【STM32】手把手固件库开发工程建立

    再来复习一遍固件库开发方式的工程建立方法吧 -----针对STM32F10x系列(示例为F103C8T6,开发环境为MDK5) 目录 1 创建工程 2 在工程文件夹中手动创建四个文件夹 3 在固件库文 ...

  2. 使用keil5的固件库建立第一个STM32工程

    这里小编使用STM32F103ZET6型号开发板为例,给大家介绍使用keil5的固件库建立一个LED灯闪烁的工程.这种方式简单直接易上手,特适合某些想偷懒或赶时间编程的朋友. 一.步骤: 第一步,选择 ...

  3. stm32f407固件库移植ucosii_v2.92.07

    试验原因 在f103固件库上已经移植了ucosii + lwip, 试验过了. 产品板子是f407, 准备重新移植一遍ucosii + lwip. 先从固件库模板上移植ucosii. 上次做过移植试验 ...

  4. 【STM32】新建基于STM32F40x 固件库的MDK5 工程

    00. 目录 文章目录 00. 目录 01. 前提条件 02. 创建工程步骤 03. 系统时钟配置 04. 添加其他功能函数 05. 附录 06. 声明 01. 前提条件 1.1 官方标准固件库 文件 ...

  5. keil5固件库版本的工程建立

    keil5固件库版本的工程建立 一.一个文件夹,如图再建立4个文件夹 二.准库往上图四个文件夹里粘贴 从标准库里面把Libraries里面的两个文件夹全部复制到新建文件夹Libraries里面 三.来 ...

  6. keil C51如何下载stc固件库

    1.用keil打开stc的工程,提示如下错误,没有找到固件库 2.登录stc官网下载isp软件,双击进入 3.开软件后,我们再keil仿真设置那个选项卡下面,点击添加STC仿真驱动到keil中.添加型 ...

  7. 【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( 拷贝 lib7zr.so 动态库头文件到 Android 工程中 | 配置 CMakeLists.txt 构建脚本 )

    文章目录 一.拷贝 p7zip 源码中的头文件到 Android Studio 项目中 二.配置 CMakeLists.txt 构建脚本 1.导入动态库 2.导入头文件 三.完整 CMakeLists ...

  8. 【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( 拷贝 lib7zr.so 动态库到 Android Studio 工程 | 配置 build.gradle 构建脚本 )

    文章目录 一.拷贝 lib7zr.so 动态库到 Android Studio 工程 二.配置 Module 下的 build.gradle 构建脚本 三.参考资料 一.拷贝 lib7zr.so 动态 ...

  9. STM32 keil如何下载STM32芯片F1/F4固件库 .pack文件

    1.用keil打开STM32F407的程序,结果提示下面的问题,就是没有安装固件库 2.然后去keil官网下载对应的固件库,官网地址:https://www.keil.com/ 3.然后选中对应的芯片 ...

最新文章

  1. 【洛谷P2024】食物链
  2. 计算机网络安全防护体系研究
  3. 轻断食是一种科学的减肥方法吗?
  4. 你以为 CSS 只是个简单的布局?装逼指南了解一下
  5. .NET 6新特性试用 | 常量内插字符串
  6. Magento教程 1:免费购物车系统,轻松建立Magento第一步!
  7. python split()方法_聊聊 Python 的单元测试框架(一):unittest
  8. 卷积神经网络对咖啡病虫害识别和分割(分割+分类,病害严重程度详细)
  9. LinQ To XML——用LinQ查询XML
  10. mysql控制结构_Mysql 控制结构初识
  11. png2theora.c: undefined reference to `png_sizeof
  12. matlab如何求解定积分,matlab如何求解定积分
  13. 自定义View:Android 仿 PS 选色板
  14. JPA环境下使用Hibernate二级缓存
  15. 橘子学设计模式之原型模式
  16. python删除指定元素 多个_Python List remove()删除多个元素
  17. 7-2 高精度求累加和 分数 25作者 胡伟平单位 广西科技大学
  18. Python3字典合并的几种方法
  19. 欧姆龙NJ/NX使用POD映射拓展轴功能块与应用案例
  20. 【多媒体封装格式详解】---MP4【1】

热门文章

  1. android system recovery%3csv1.1%3e,【记录】尝试用ODIN去恢复启动界面是Android system recovery 3e的I9100G...
  2. 【已解决】由于找不到LIBATRIAGU.dll,无法继续执行代码。重新安装程序可能会解决此问题。
  3. MTK Android HIDL层添加hash值
  4. 7-47 打印选课学生名单
  5. 两台win11笔记本扩展屏幕
  6. 在Ubuntu中安装Windows7虚拟机的一点经验
  7. keil uvision中添加STC单片机
  8. 暗黑破坏神4玩不了怎么办?可能是显卡驱动没更新
  9. 【图吧导航】非常好的手机导航软件Mapbar,支持离线地图下载(就是谷歌地图)...
  10. 利用拼音查询城市小结