web嵌入式服务器搭建stm
Ⅰ 如何在IAR EWARM下建立工程和配置STM32开发环境
一、生成一个新项目
要使用IAR进行STM32嵌入式系统开发,必须从建立一个项目(project)开始,下面以在E:\下建立一个名为Example的项目为例介绍。
1. 创建项目目录、复制公共文件
(1)在E盘下创建名为的Example文件夹,即项目根目录为E:\Example。
(2)在项目根目录下建立一个EWARMv5文件夹用于存放项目文件、工作空间文件和项目配置相关文件。
(3)解压标准外设驱动文件库(stm32f10x_stdperiph_lib_V3.1.2.zip),将其中的“Libraries”文件夹复制到Example目录下。
(4)复制标准外设驱动库目录Project\Template下的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h三个文件到Example文件夹下。main.c可以不用复制,我们自己写。
复制标准外设驱动库目录Project\Template\EWARMv5下的stm32f10x_flash.icf、stm32f10x_flash_extsram.icf、stm32f10x_nor.icf和stm32f10x_ram.icf到Example\EWARMv5文件夹下。
复制好的目录如图1所示。
图1. Example文件夹下的文件
2. 创建新的工作空间
嵌入式系统开发大都是面向项目(Project)的,需要建立Project来管理项目开发。IAR EWRAM又是基于工作空间(Workspace)的集成开发环境,Project必须放在工作空间里面,所以我们首先应该建立工作空间。一个工作空间里面可以放多个项目。
开始?程序?IAR Systems?IAR Embedded Workbench,进入IDE环境。File ?New?Workspace。
这样工作空间就建好了,但是这个工作空间里面还没有项目,所以还不能保存,下面将在这个工作空间里面建立新项目。
3. 创建新项目
在上面第2步已经建立好的工作空间里创建新项目。
Project?Create New Project。弹出“Create New Project”对话框,“Tool Chain”选择ARM,“Project Template”选择Empty project模板,这样所有的文件都由用户自己来写。点击OK,弹出“另存为…”对话框,选择我们刚刚建好的Example目录下的EWARMv5文件夹下,然后输入工程名 ,这里我输入Template,然后点击保存。这样一个名为Template的IAR EWARM项目就建好了,下面我们添加一些文件,然后再修改一些参数,使得这个项目真正地能够使用。
4. 添加文件到项目
(1)文件分组
按说现在就可以往项目里面添加文件了,但是由于ARM系统开发涉及文件较多,类型繁杂,加上我们使用ST公司的标准固件库驱动文件,这样就要添加很多文件到项目里,随着项目的复杂程度加大,文件的数量是很多的。为了便于管理,我们将这些文件在项目里分组保存,IAR EWARM支持文件分组。
在IDE左侧的Workspace里面,我们在刚刚建立的Template项目上点右键,选择Add? Add Group…。在弹出的对话框里面输入组名(Group Name),点OK即可。我们将添加如下几个组,如图2所示。
从图2可见,项目名字后面有个星号(*),这是说明项目或工作空间已经修
改,但是还没有保存,现在点File?Save All,这时弹出对话框让我们保存工作空间。还记得工作空间吗?第2步我们新建的工作空间,但是当时没有保存,因为当时工作空间里面没有项目,不能保存。输入工作空间名Template,然后点保存,这时候项目后面的星号*消失。
注:工作空间扩展名.eww,项目扩展名
Ⅱ 物联网(二)---原理分析[STM32+OneNET+ESP8266]
物联网(一)---快速上手[STM32+OneNET+ESP8266]
物联网(二)---原理分析[STM32+OneNET+ESP8266]
物联网(三)---WEB下发命令控制单片机[STM32+OneNET+ESP8266]
物联网(四)---搭建自己的TCP服务器[ESP8266]
物联网(五)---搭建自己的云平台[ESP8266+Django]
上图:
图片上信息已经很丰富了,这里再稍微解释一下。
单片机通过串口先发送 AT指令 给 ESP8266 完成参数配置,配置完成后将 ESP8266 断电重启一次,以使配置生效(这一步可由 AT指令 完成)。
ESP8266 重启后将会自动连接 AT指令 所指定的 WIFI 名称,连接成功后会通过串口返回 OK ,程序中可以通过检测是否返回 OK 来判断是否成功连接网络,下面使 ESP8266 的初始化程序。
你可能注意到有一个 1000ms 的延时,这个是为了等待完成数据发送、接收。
服务器再接收到数据后会对所提交的数据做出响应。提交成功后,服务器会返回数据如下:
这里多 ESP8266 也产生了一个 WIFI 信号,这是由于使用了 AT指令 配置了 AP+STA 模式, ESP8266 在这里可以充当一个中继的角色.
这里要注意的是,必须选择你电脑热点的接口,不能是其他接口,否则数据是无法查看到的,这里我选择的是我电脑的热点。
下面的 {"errno":0,"error":"succ"} 也恰好和我们前面串口助手里看到的信息相符合。
如果和上一片文章一样配置好了的话,就可以在服务器端OneNET上查看数据了,像下面这样。
Ⅲ 基于keil MDK给stm32编程的问题。。。嵌入式系统开发环境的搭建
您好,一、【安装STM32库】 将下载后的stm32f10x_stdperiph_lib.zip解压后得到三个文件夹分别是:"Libraries"、"Project"、"Utilities"将这3个目录复制到"Keil uVision4"的安装目录,和目录中的文件覆盖合并。二、【新建工程】 1、打开"Keil uVision4",在Project菜单中选择新建工程,选择工程要保存的位置,在弹出的“Select Device for target”的对话框中选择使用的STM32单片机的型号如“STM32F103C8”,点确定,然后在弹出的“Copy startup code”的对话框中点选"NO".
2、在Project“Target 1”上点选右键菜单“Option for target target1中设置相关参数”在[Output]选项卡中点选“Create HEX file”,点"Select folder for objects"设置临时生成的obj文件的存放目录,当然也可以不选择;
3、在[C/C++]选项卡的"Preprocessor Sysmbols"的Define框中做如下定义:USE_STDPERIPH_DRIVER,STM32F10X_MD
其中USE_STDPERIPH_DRIVER表明要使用ST提供的库,在"system_stm32f10x.c"文件中包含的"stm32f10x.h"文件中有如下定义:
#ifdef USE_STDPERIPH_DRIVER #include "stm32f10x_conf.h"#endif在[C/C++]选项中添加的USE_STDPERIPH_DRIVER宏就是这个作用,用来包含"stm32f10x_conf.h"这个文件被称为"Library Configuration file"用来配置你需要使用到库的那些文件的,例如需要使用到GPIO就应在在这个文件中加上#include "stm32f10x_gpio.h"这个文件可以在STM32库的给出的例程中找得到(C:\Keil\ARM\Project\STM32F10x_StdPeriph_Examples)另外还需要在例程中复制"stm32f10x_it.c"和"stm32f10x_it.h"这2个文件,这2个文件时用来完成STM32中重中断服务程序的将一下三个文件复制到自己工程的user目录下供以后使用:"stm32f10x_conf.h"、"stm32f10x_it.c"、"stm32f10x_it.h"STM32F10X_MD 表明使用的是STM32F10X系列的CPU而该CPU的Flash代码密度是中等(Medium-density devices)这个和使用的CPU相关的查阅CPU的手册就可以得到。
然后在该选项卡的下方的"Include Paths"中设置include使用的路径等,如下图所示:其中.\user路径是用来保存自己定义的头文件的路径4、[Debug]选项卡选择使用"Cortex-M/R J-Link/J-Trace",然后点"Settings"按钮在新打开的对话框中选择[Flash Download]选项卡点"Add"按钮添加编程使用的Flash,在本例中选用的CPU是STM32F103C8,其Flah为Medium-density使用片上的Flash型号为"STM32F10X Med-density Flash On-chip-Flash 128K",最终点OK保存设置。5、[Utilities]选项卡中的"Use Target Device for Flash Programing"要选择和[Debug]选项卡中一样的调试器"Cortex-M/R J-Link/J-Trace";6、然后再次在左侧的"Target 1"上点选右键,在菜单中选择"Manger Components"然后在"Project components"选项卡的"Group"中新建3个组名称分别为"user"、"libs"、"cmsis"1、 分别用来保存用户自己的C文件、stm32f10x_stdperiph_lib的库、和cortex-m3的启动文件等。
users:
Keil\ARM\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\ system_stm32f10x.c (stm32f10x_it.c该文件定义各种中断的中断服务函数)
libs:
Keil\ARM\ Libraries\ STM32F10x_StdPeriph_Driver\src\*.*
cmsis:
Keil\ARM\ Libraries\ CMSIS\ CM3\ CoreSupport\core_cm3.c
Keil\ARM\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
keil\ARM\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s
(该文件和CPU的Flash的代码密度相关,本例中的STM32F103C8是Medium-density故选用xxx_md.s)
Ⅳ STM32 WEB服务器经常用到CGI SSI,可是为什么这方面一个具体的应用教程都没有
其实SSI跟asp差别蛮大的,ssi只能是在shtml文件载入的时候,其中的ss标签被替换为其他内容,(何种标签替换为何种内容 是用户在LwIP协议中自定义的),而ASP、CGi是可以在html载入后动态调用的,他们才能实现完善的动态交互功能
至于如何入手,lwip的源码里面有详尽的英文注释,lz可以对着看看。
如果你想进行lwip 的CGI编程,建议你看看这么几个文件:httpd.h httpd.c httpd_cgi_ssi.c
我刚好是先学习了普通的PC机上搭建 IIS 服务器,学习html 、cgi、asp方面的知识,然后才接触lwip,然后在别人搭建好的嵌入式服务器上进行cgi编程,基本上手了。
硬件上的cgi编程更底层,而复杂,如果你难以入手,你可以在你的windows下搭建IIS服务器,熟悉一下cgi,再转stm32上实现