STM32的工程模版创建(保姆级教程)

本文基于stm32标准库的工程模版创建,分为三个步骤进行,第一步复制固件库的系统文件,第二步是在keil5软件中新建一个stm32的工程,第三步对工程进行调试运行测试。

创建工程前需要提前下载安装好keil5软件、STM32F1xx固件库。

目录

一、复制固件库的系统文件

1、创建文件夹

2、对工程模版内的文件进行配置

2.1、star文件夹

2.2、library文件夹

2.3、user文件夹

二、keil5软件内创建工程

1、keil5软件创建工程

2、系统文件设置

3、调用工程模板


一、复制固件库的系统文件

1、创建文件夹

创建用于放至工程的文件夹:在工程存放文件夹中新建一个名为“工程模版”的文件夹,在文件内新建3个子文件夹,分别为:library、star、user

2、对工程模版内的文件进行配置

2.1、star文件夹

2.1.1、将STM32F1xx固件库内STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm(文件名地址)内的全部文件复制至工程模版文件中的star文件夹中

2.1.2、将STM32F1xx固件库内STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x(文件名地址)内三个文件复制至工程模版文件中的star文件夹中

2.1.3、将STM32F1xx固件库内STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport(文件名地址)中的两个文件全部复制至star文件夹中

2.1.4、上面3个star步骤完成后,star文件夹中总共有13个文件,如下图所示

2.2、library文件夹

2.2.1、将STM32F1xx固件库内STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc(文件名地址)中的全部文件全部复制至library文件夹中

2.2.2、将STM32F1xx固件库内STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src(文件名地址)中的全部文件全部复制至library文件夹中

2.2.3、上面2个library步骤完成后,star文件夹中总共有46个文件,如下图所示

2.3、user文件夹

2.3.1、将STM32F1xx固件库内\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template(文件名地址)中的4个文件(mian.c、stm开头的三个文件)复制至library文件夹中

2.3.2、上面的4个文件复制完成后如下图所示,

这样我们就对stm32工程的系统文件完成了最基本的配置。

二、keil5软件内创建工程

1、keil5软件创建工程

1.1.1、打开keil5软件,按下图两个步骤创建工程

1.1.2、选择我们要新建工程的保存路径,保存在步骤一新建的“工程模版”文件夹内

打开后给工程命名然后点击右下角的保存

1.1.3、工程文件属性配置

选择对应的芯片型号,然后点击ok

弹出一下窗口,我们点击ok即可

这样我们的工程就已经建好了,接下来我们要将工程模板内的文件夹关联到工程中

 

2、在工程中对组进行操作

2.1.1、建立组文件

新建三个组,分别为star、library、user,与工程模版的三个子文件夹名对应,如下图

对组文件进行配置

在弹窗中双击star文件,打开后将下方的文件类型改为:all files(*.*),然后选择所有后缀为.c和.h的所有文件以及md-s结果的文件(启动文件),如下图:(选择文件时,单击一个文件后按住Ctrl键可文件多选)

添加完如下图:

然后对如上述操作对另外两个文件进行配置(library、user),这个两个在选择文件全选(Ctrl+A全选快捷键)添加,添加后如下图:

对三个文件添加配置完后点击OK即可,这时候我们可以看到工程内左边的文件组内有我们所添加的文件

2、系统文件设置

点击工程中的魔术棒,然后点击c/c++选项,在define中输入:USE_STDPERIPH_DRIVER,即使用标准外设驱动。

点击下方include Paths后面的三个点,选择步骤一创建的”工程模版“的三个子文件夹进行关联(star、library、user),如下图

重复以上新建关联三次,对三个文件进行关联,关联后如下图:

关联后点击ok,这样我们的工程就创建好啦

三、程序编写即运行测试

1、主函数编写

打开工程左右的主函数main.c,然后将里面内容删除(这里我们main函数因为是复制过来的工程文件,里面有别人编写的程序注释等,我们将其删除,然后重新编写),如下图所示:

#include "stm32f10x.h"                  // Device header

int main(void)
{
	while(1)
	{
	
	}
}

注意,这里主程序最后必须有一行为空行,否则会出现1个警告,最后一行为空格后编译就0个警告,0个错误,但由于我们是第一次建的工程,所以建立工程目标所需要的时间比较长,当编译和建立工程目标完成后就会出现下图所示的0警告0错误,这样我们整个工程就建好了。

3、调用工程模板

当我们工程模板建好后,下一次要用的时候就不需要重复上面操作建立工程模板了,我们在keil项目的文件夹中找到“工程模板”这个文件夹,将其复制后重新命名,得到“实验1”,然后我们打开这个工程,在主函数(main.c)中进行程序编写即可。

如有文章中有错误的地方,请大家多多指点。

工程模板链接如下:

链接:https://pan.baidu.com/s/1R0YNUnyDdoG4YKqFsqLdEQ?pwd=qs8a 
提取码:qs8a 
 

<think>好的,我需要帮助用户找到LabVIEW编写的串口通信助手的源代码,要求能够与上位机通讯并正确处理指令。首先,我得回忆一下LabVIEW的串口通信相关功能和用户提供的参考资料。 用户提供的引用中有几篇提到LabVIEW串口通讯,特别是引用[1]和[3]提到了具体的教程和代码流程。引用[1]中的保姆教程可能详细介绍了串口配置和通讯步骤,而引用[3]提到了STM32和Labview的代码流程,包括AT指令的处理。这些应该是关键点。 接下来,我应该考虑LabVIEW中串口通信的基本组件,比如VISA函数。用户需要源代码,所以需要指导他们如何使用VISA Configure Serial Port、VISA Write、VISA Read等节点。同时,可能需要处理数据解析,比如ASCII和十六进制的转换,引用[2]中的例子显示数据解析正确,说明这部分可能需要关注。 然后,用户可能需要知道如何集成这些组件,比如循环结构处理持续收发,事件结构处理界面交互。引用[3]提到的AT指令处理可能需要状态机或条件结构来判断指令类型,并执行相应操作。此外,引用[1]提到的优化方法可能涉及错误处理和超时设置,这也是代码中需要注意的部分。 用户还可能关心代码结构,比如前面板的设计,包含串口参数配置的输入控件、接收和发送数据的显示区域。引用[2]中的运行界面展示了这些元素,所以需要建议用户参考这些设计。 最后,源代码的获取途径,除了自行编写,用户可能希望直接下载示例。引用[1]和[3]提到的教程可能附带了代码,需要引导用户查看相关资源,或者访问NI官网和论坛。需要确保建议的步骤清晰,并提醒他们注意错误处理和测试,如引用[1]和[2]中提到的连接和解析问题。 总结步骤:配置串口参数、初始化VISA、设置读写循环、处理数据解析、集成用户界面、错误处理。同时推荐参考提供的引用教程和官方资源,确保代码可靠性和效率。</think>以下是关于LabVIEW串口通信助手实现的关键步骤及资源指引: --- ### **LabVIEW串口通信实现步骤** 1. **串口配置与初始化** - 使用`VISA Configure Serial Port`节点设置串口号、波特率(如9600)、数据位(8)、停止位(1)、校验位(无)等参数[^1]。 - 示例代码片段: ```labview VISA Open → VISA Configure Serial Port → 进入主循环 ``` 2. **数据收发逻辑** - **发送指令**:通过`VISA Write`节点将字符串或十六进制指令发送至下位机(如STM32)。例如发送AT指令:`AT+READ?`[^3]。 - **接收数据**:使用`VISA Read`节点读取缓冲区数据,配合`Bytes at Port`检测数据长度,避免阻塞。 - 循环结构需包含超时处理(`VISA Set Timeout`)防止通信卡死。 3. **数据解析与显示** - 对接收的原始数据(ASCII或HEX格式)进行解析,例如分隔温湿度数据`T=25.5,H=60%`并显示波形[^2]。 - 使用`String/Array`函数处理数据,如`Match Pattern`提取关键值。 4. **用户界面设计** - 前面板添加控件:串口号选择框、发送指令输入框、接收数据显示框、波形图(用于实时监测)。 --- ### **关键代码参考** ```labview 1. VISA配置 → 初始化串口 2. While循环内: - 检测发送按钮事件 → VISA Write发送指令 - 定时读取VISA Buffer → VISA Read获取数据 → 解析并更新前面板 3. 错误处理簇连接所有VISA节点 ``` --- ### **直接获取源代码的途径** 1. **NI官方示例** 访问LabVIEW安装目录的示例程序(路径:`Help → Find Examples → Hardware Input and Output → Serial`),包含基础收发模板。 2. **引用[1][3]的教程** - 引用[1]的教程详细展示了LabVIEW串口通讯的完整代码框架。 - 引用[3]提供了STM32与LabVIEW交互的AT指令解析源码。 3. **开源平台** GitHub/Gitee搜索关键词“LabVIEW Serial Assistant”,筛选包含数据解析和指令控制的项目。 --- ### **注意事项** - **指令同步**:若需严格同步(如请求-响应模式),需在发送后添加延迟确保下位机响应完成。 - **多线程优化**:通过`Parallel While Loop`分离收发线程,提升实时性[^2]。 - **错误恢复**:在`VISA Close`前调用`VISA Clear`清除缓冲区残留数据[^1]。 ---
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值