手把手教你用STM32发送带附件的邮件 (一、RT-Thread Studio 项目配置)

 

项目介绍

本项目基于正点原子潘多拉开发板,使用RT-Thread操作系统,实现带附件的邮件发送功能。

项目准备

  1. RT-Thread Studio [开发工具]
  2. RT-Thread IoT_Board SDK [开发环境]
  3. 正点原子潘多拉开发板 [硬件]

资源准备

为了加快开发流程,我们使用RT-Thread提供的IoT_Board开发包,里面已经做好了潘多拉的硬件环境,无需进行移植,我们本次的开发也是基于其中的一个demo进行,非常方便。

开发包下载:https://gitee.com/Armink/IoT_Board/repository/archive/1.1.0

最新源码:https://gitee.com/Armink/IoT_Board

现在开始

  • 建立开发工程

下载完开发包后,进入目录:IoT_Board - examples,可以看到这里面包含了大量的例程,所有这些例程都是可以直接下载到板子运行的。

我们需要做的是邮件发送项目,因此需要有一个能够联网的例程。在此我们选择 iot_wifi_manager 例程,该例程实现了基本的wifi连接功能,在此基础上开发我们就不需要过多的涉及网络代码的编写,可以着眼于我们的邮件功能。

            

我们将该例程在当前文件夹复制一份,并且命名为 smtp_test:

至此我们就拥有了我们自己的一个工程,由于我们是使用RT-Thread Studio进行开发,而该开发包是基于MDK的工程,所以接下来我们需要在RT-Thread Studio中导入该工程。

  • RT-Thread Studio 导入工程

打开RT-Thread Studio,选择 文件 - 导入 - RT-Thread - MDK/IAR 项目到工作空间中

                

点击下一步,选择我们刚才所建立的工程文件夹中的project.uvprojx文件,点击打开:

将工程名称命名为:SMTP,点击完成。

此时我们就把之前建立的工程顺利导入到了RT-Thread Studio中了:

 

  • RT-Thread Studio 配置

由于我们的原始工程使用的是ARMCC工具链,而RT-Thread Studio使用的是GCC工具链,因此我们还需要进行一些配置才能使工程能够正常下载运行。

一、库文件准备

本项目中我们需要用到WIFI操作的库文件以及OTA的库文件,WIFI库文件包含了对WIFI模块的操作接口,而OTA库文件则负责WIFI固件的校验及搬运,在这里我们只需将其正确配置如工程即可,无需对其进行深入的了解。

我们打开 IoT_Board - libraries 文件夹,可以看到里面包含了一些库,我们需要的文件就在 rt_ota 文件夹 与 wifi 文件夹中。

接下来我们需要将这两个文件夹中的库文件加入到我们的工程中。因为我们的工程是通过MDK工程导入的,如果我们直接修改原本工程的文件结构会出现一些问题,所以在此我们不会将文件添加到原工程已存在的目录中,而是在原工程的基础上新建文件夹并将我们后续的新文件添加到新目录中。

首先我们打开RT-Thread Studio,在我们的工程中新建一个目录,命名为 board :

建立文件夹后,我们右击新建的文件夹选择打开资源所在目录。我们新建的board文件夹就位于此目录下。

将刚才我们打开的libraries中的rt_ota与wifi文件夹复制到board文件夹下。

此时我们的库文件就已经准备下,接下来要在RT-Thread Studio中进行相应的配置,将这些库文件加入到工程中。

二、库文件配置

右击工程名,选择刷新,此时我们就能在工程目录中看到我们加入的新文件:

                 

我们展开这两个文件夹目录,可以看到我们所加入的所有文件:

其中我们真正需要的是 rt_ota.hlibrt_ota_noalgo_0.1.2_stm32l4_gcc.a以及libwifi_6181_0.2.5_armcm4_gcc.a,总共三个文件。其他文件我们并不需要,因此无需关注。

首先我们需要将 rt_ota.h 所在的目录加入到工程的头文件路径中,使编译器能够找到这个头文件。

右键工程名打开右击菜单,选择 属性(参照前几次操作):

选择 C/C++ 构建 下的 设置 选项,在右侧的菜单中选择 GNU ARM Cross Compiler 下的 Includes,点击 Include path (-I)右侧的加号图标:

在弹出的对话框中选择 工作空间 ,选择我们刚才加入的 rt_ota.h 的文件路径,点击确定:

头文件路径加入后,我们还需加入两个库文件。

在之前打开的属性/设置菜单中选择 Cross Arm C Linker 下的 Libraries ,点击 Libraries (-l)右侧的添加图标,在弹出的对话框中输入 rt_ota_noalgo_0.1.2_stm32l4_gcc ,点击确定,再次点击添加图标,输入 wifi_6181_0.2.5_armcm4_gcc ,点击确定。(去掉库文件名前面的lib和结尾的.a)

库文件加入后还需加入库文件的路径,点击下方 Library search path (-L) 右侧的添加图标,按照添加头文件路径的方式将两个库文件的路径添加入工程中:

至此库文件的添加操作已经完成,点击应用并关闭保存配置。

若此时弹出一个对话框,点击 即可。

三、链接文件配置

接下来我们需要添加链接文件,由于本工程原本是MDK工程,不存在用于GCC的链接文件,因此我们需要创建一个链接文件。当然,我们并不想从头开始写一个链接文件,好在RT-Thread Studio可以生成一个新的针对于STM32L475的工程,又因为其是 RT-Thread Studio 生成的,所以它自带GCC的链接文件,我们只需将其拷贝到我们的工程中即可。

3.1、新建模板工程

点击 文件 - 新建 - RT-Thread项目,随意输入一个项目名,选择 基于BSP,选择 stm32l475-atk-pandora,选择 ST-LINK接口,点击完成。

     3.2、拷贝链接文件

进入新生成的项目目录下的 board - link_scripts , 将该目录下的 link.lds 拷贝到我们自己项目中的 board 文件夹下:

       

       

再次刷新我们的工程,此时可以看见目录下已经有了link.lds文件:

同理,我们需要将该文件加入到编译环境中。打开项目属性,选择 C/C++ 构建 - Cross ARM C Linker - General,点击添加图标将我们的链接文件添加入Script files中:

添加完后点击 应用并关闭 按钮。此时我们的项目就算是部署成功了,接下来我们先测试一下工程是否可以正常编译运行。

  • 测试工程

首先我们进入 Applications - main.c 文件中修改 WLAN_SSID WLAN_PASSWORD 两个宏定义,它们分别对应我们所要连接的无线网用户名和密码。只有正确配置了无线网的用户名与密码才能使开发板连上WIFI。

修改成功后点击软件上方工具条的编译图标进行项目编译:

   

当RT-Thread Studio下方控制台显示 Build Finished 提示后表明编译成功。

此时我们点击上方工具条的下载按钮右侧的小箭头,选择ST-LINK:

     

选择完成后确保开发板与电脑相连,同时打开串口调试工具,打开开发板所对应的连接端口,准备查看开发板的运行日志,点击下载按钮下载程序:

等待下载完成后,查看串口调试工具,若此时开始打印如下数据,则程序下载成功:

开发板启动流程完成后,会自动连接刚才配置的WIFI,若连接成功,则会打印出获取的IP地址信息:

此时标志着我们的工程在RT-Thread Studio下部署完成,接下来我们就可以进行应用的开发了

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 通达信缠论插件是基于VC 2010编写的,下面我将用图文的形式,一步步教你编写k线包含处理。 第一步:创建项目 在VC 2010中,依次选择“文件”-“新建”-“项目”,选择“Win32项目”。填写项目名称,选择保存路径,点击“确定”按钮。 第二步:设置项目属性 在解决方案资源管理器中,右击项目名称,选择“属性”。 在“属性页”中选择“配置属性”-“常规”,将“项目类型”更改为“动态链接库(.dll)”。 在“属性页”中选择“配置属性”-“常规”,将“字符集”更改为“使用多字节字符集”。 点击“应用”按钮,再点击“确定”按钮。 第三步:添加头文件 在解决方案资源管理器中,右击“源文件”文件夹,选择“添加”-“新建项”。 选择“C++文件(.cpp)”,填写文件名称,点击“添加”按钮。 打开新增的文件,在代码编辑器中,添加以下头文件: #include <windows.h> #include <tchar.h> 第四步:编写k线包含处理函数 在代码编辑器中,添加以下函数: BOOL KLineContain(HDC hdc, int x1, int x2, int y1, int y2){ // 在这里编写k线包含处理函数的代码 // ... return TRUE; } 第五步:处理插件入口函数 在代码编辑器中,找到以下函数,并进行修改: BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved){ switch(fdwReason){ case DLL_PROCESS_ATTACH: // 在这里进行初始化操作 // ... break; case DLL_PROCESS_DETACH: // 在这里进行清理操作 // ... break; } return TRUE; } 第六步:编译和运行插件 点击“生成”菜单,选择“生成解决方案”。 插件编译完成后,将生成的.dll文件复制到通达信安装目录的“/gpc”文件夹中。 重新打开通达信软件,插件已经加载成功。 以上是使用VC 2010编写通达信缠论插件的步骤,通过这个插件,你可以方便地进行k线包含处理。希望对你有帮助! ### 回答2: 通达信是一款流行的股票分析软件,而编写通达信插件是一项常见的需求。本文将用图文详细说明,在使用VC 2010编写通达信缠论插件中的第二个步骤,即K线包含处理。 首先,打开VC 2010软件,并创建一个新的项目。选择Visual C++空项目,并为其命名。 接下来,右键单击解决方案资源管理器上的项目名称,并选择添加->新建项。在对话框中选择基于文档的项目,并为其命名。 然后,在解决方案资源管理器中,找到新创建的项目文件,右键单击并选择属性。在属性窗口中,选择常规->字符集,将字符集选项设置为“使用多字节字符集”。 现在,创建一个新的类。右键单击项目文件,并选择添加->类。在类向导对话框中,填写类的名称,并选择该类的类型为“派生自”->“文件”。 在类编辑器中,找到OnRcvMsg函数并打开它。在该函数中,添加代码来处理K线包含逻辑,例如: ```c++ void OnRcvMsg(LPCSTR Msg) { // 从通达信软件接收到的消息处理 if (strstr(Msg, "K线包含处理")) { // 执行K线包含处理逻辑 } else { // 其他逻辑 } } ``` 在K线包含处理逻辑的代码块中,你可以添加任何你认为适合的代码。例如,你可以解析接收到的消息,并根据其中的指令执行相应的操作。 完成以上步骤后,保存并构建项目。确保没有任何错误或警告。如果有错误,可以通过检查代码并纠正错误来解决问题。 总结起来,这就是使用VC 2010编写通达信缠论插件(2-K线包含处理)的步骤。通过创建一个新的类,并在OnRcvMsg函数中添加K线包含处理的代码块,可以开始构建自己的插件。这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。 ### 回答3: 编写通达信缠论插件是一项相对复杂的任务,需要有一定的编程基础和对通达信软件的了解。下面将以图文的方式,一步步教您用VC 2010编写通达信缠论插件中的K线包含处理部分。 第一步:打开VC 2010,创建一个新的项目。选择“Win32控制台应用程序”,命名为“ChanPlugin”。 第二步:在“stdafx.h”中添加必要的头文件,如包含“Windows.h”和“t2sdk.h”,以及定义一些常量和变量。 第三步:在“ChanPlugin.cpp”中,添加一个名为“HandleKLine”的函数来处理K线包含。 第四步:在“HandleKLine”函数中,首先获取通达信软件的K线数据。可以使用通达信提供的API函数来获取K线数据,如“T2SGetKLineData”。 第五步:对获取到的K线数据进行处理,判断K线之间的包含关系。可以使用循环来遍历每个K线,通过比较前后两个K线的最高价和最低价来判断是否有包含关系。 第六步:加入处理包含关系的代码,可以使用条件语句来处理不同的情况。例如,如果前一根K线包含后一根K线,可以做出相应的操作。 第七步:根据需要,在插件中显示处理结果。可以将结果输出到通达信软件的窗口或者绘制到图表上。 第八步:编译并运行插件,将其安装到通达信软件中。测试插件的功能是否正常,并根据需要进行调整和修改。 通过以上步骤,您可以一步步用VC 2010编写通达信缠论插件中的K线包含处理部分。当然,这只是一个示例,实际编写插件时还需要考虑更多的因素和细节。希望以上内容对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值