使用百问网的STM32F103MINI开发板完成下面实验。

1、编写添加的任务函数。

void StartMyTask(void *argument)
{uint8_t rx_data[200] = {0};   while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 *///按键按下if (Key_GetFlag()) {ESP8266_Send_UDP("{\"data\":\"doorbell\",\"status\":\"1\"}");}//收到UDP数据if (USART2_Receive(rx_data)){//printf("%s\r\n", rx_data);if (strstr((char *)rx_data, "\"dev\":\"led\",\"status\":\"0\"")) {printf("led off\r\n");HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);USART2_ClearBuf(); memset(rx_data, 0, 200);}else if (strstr((char *)rx_data, "\"dev\":\"led\",\"status\":\"1\"")){printf("led on\r\n");HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);USART2_ClearBuf(); memset(rx_data, 0, 200);             }}osDelay(1);}
}

2、主函数中发送AT指令。

①uint8_t wifi_data[200] = {0};     //定义数组,初始化为0

②Key_Update_WIFI((char *)wifi_data, 500);    //更新WIFI和密码的函数

这个函数有默认的WIFI和密码,按键按下会更新WIFI和密码,

通过strcat()连接字符串,并通过memcpy()拷贝字符串。

③ESP8266_SendCommand("AT+RST", "OK", 500);    //复位WIFI模块

④ESP8266_SendCommand("AT+CWMODE=1", "OK", 500);    //设置模式

⑤ESP8266_SendCommand((char *)wifi_data, "OK", 5000);    //连接WIFI

⑥ESP8266_SendCommand

("AT+CIPSTART=\"UDP\",\"192.168.50.230\",9999,9999,2", "OK", 500);

创建UDP连接

⑦ESP8266_GetIP();    //获取IP地址

⑧操作系统内核初始化、FreeRTOS初始化、操作系统内核启动。

osKernelInitialize();

MX_FREERTOS_Init()

osKernelStart();

3、FreeRTOS的函数。

①创建一个结构体,使用其可以创建对象,对象用于函数的参数。

typedef    struct

{

const    char    *name;    //函数名称

uint32_t    attr_bits;    //属性位

void    *cb_mem;    //控制块内存指针

uint32_t    cb_size;    //控制块大小

void    *stack_mem;    //栈内存指针

uint32_t    stack_size;    //栈大小

osPriority_t    priority;    //优先级

TZ_ModuleID_t    tz_module;    //信任块标识

uint32_t    reserved;    //保留

}    osThreadAttr_t;

const    osThreadAttr_t    MyTask_attributes =

{

.name = "MyTask";

.stack_size = 256 * 4;

.priority = (osPriority_t) osPriorityLow,

};

osThreadID_t    MyTaskHandle;    //任务句柄

extern    void    StartMyTask(void* argument);    ///函数声明

void    MX_FREERTOS_Init(void)

{

MyTaskHandle = osThreadNew(StartMyTask, NULL, &MyTask_attributes);

...

}

4、实验结果。

①下载程序,通过串口可以打印过程信息。

②通过手机连接电脑的热点。110    12345678

③微信小程序,绑定IP,912.168.137.49。

④点台灯图表,可以控制开发板的LED,按下开发板的按键,

可以看到手机微信小程序的门铃图表变红。

Cube添加FreeRTOS 下相关推荐

  1. excel添加列下拉框票价_excel表格下拉表格添加数据-excel2017表格中怎么制作下拉菜单列表框...

    在Excel表中,如何将增加下拉菜单的选项? excel中的下拉菜单选项,就是筛选的功能,具体操作如下: 1.首先选中a.b两列数据,在"开始"选项卡上选择"筛选&quo ...

  2. css里给文字加下划线代码,css添加文字下划线样式的方法

    css添加文字下划线样式的方法 发布时间:2020-08-31 13:54:27 来源:亿速云 阅读:65 作者:小新 这篇文章将为大家详细讲解有关css添加文字下划线样式的方法,小编觉得挺实用的,因 ...

  3. php css下划线,css如何添加文字下划线样式?(代码详解)

    css如何添加文字下划线样式?本篇文章就给大家介绍css添加文字下划线样式的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 首先我们来了解一下css添加文字下划线样式的方法有哪 ...

  4. 如何给PDF文件文本添加绿色下划线?PDF下划线工具怎么用?

    我们在阅读PDF文件的时候,有时根据不同重点需要给PDF添加不同颜色的下划线,那么如何给PDF文本添加绿色下划线?给PDF添加不同颜色的下划线是给PDF添加注释的类型之一,我们不仅可以给PDF文件添加 ...

  5. linux 如何定时任务添加,linux下添加定时任务。

    这周要做一个定时增量更新Elasticsearch索引的功能,以前没有做过定时更新,所以请教了下同事,使用crontab添加linux下的定时任务. 一.linux下定时执行任务的方法 在linux中 ...

  6. SMT32F407+FreeRTOS+LWIP+LAN8720使用Cube MX情况下无法实现网线热插拔

    项目场景: STM32F407+LAN8720使用Cube MX HAL库生成工程: 问题描述 使用Cube MX生成STM32F407+Free RTOS + LAN8720工程,在可以ping通后 ...

  7. 正点原子FreeRTOS(下)

    目录 第十六章FreeRTOS 事件标志组 16.1 事件标志组简介 16.2 创建事件标志组 16.3 设置事件位 16.4 获取事件标志组值 16.5 等待指定的事件位 16.6 事件标志组实验 ...

  8. logo qt添加_linux下如何给qt程序添加图标?

    Linux下Qt程序打包发布并设置图标 之前整理过一篇文章是关于Windows下Qt打包发布与设置环境变量的,那篇文章里面Qt发布的程序是没有设置应用程序图标的,之后会再整理一篇文章的,顺便测试下使用 ...

  9. c++ 编译添加dll_linux下编写C/C++代码须知———串讲

    一.C/C++的编辑编译与链接 敲代码的过程就是编辑过程,在编辑完成程序后需要经过编译和链接两个步骤才可以把程序变成我们所需要的可执行程序. 编译过程(包括预处理.编译,汇编(test.s到test. ...

最新文章

  1. 从这篇YouTube论文,剖析强化学习在工业级场景推荐系统中的应用
  2. Matlab如何从dat或者txt文件读入数据
  3. netty源码深度分析
  4. 回溯法(深度优先搜索)
  5. 栈的动态顺序存储和实现(C语言)【栈】(7)
  6. int** 赋值_Python的赋值、浅拷贝、深拷贝之间的区别
  7. InstallShield 2012 Spring新功能试用(17): Suite/Advanced UI 和 Advanced UI安装程序支持命令行Log参数...
  8. Castle ActiveRecord学习实践(2):构建配置信息
  9. Git 学习笔记--git 查看某个文件的修改历史
  10. crypto_policy_set_aes_cm_128_hmac_sha1_32/crypto_policy_set_aes_cm_128_hmac_sha1_80找不到
  11. 教程 | 如何使用Docker、TensorFlow目标检测API和OpenCV实现实时目标检测和视频处理
  12. Atitit es6新特性 Es7 es8 新特性 目录 1.1. ECMAScript 的历史 1 2. 新特性 2 2.1. 全面的class模型 2 2.2. .模块 import、expor
  13. 关于一些Excel宏病毒的清除方法整理合集
  14. Node.JS EXCEL 读取操作
  15. 3D 世界的钥匙「GitHub 热点速览 v.22.08」
  16. linux卸载小企鹅输入法,linux下小企鹅输入法的安装
  17. vue项目中金额小写转换为汉字大写的功能封装
  18. 2019-04-07 Python之利用PIL改变图片颜色和生成手绘图
  19. import time python_慢步python,说说import,引用功能代码(功能库、py文件代码)
  20. 辅助 Excel 的数据计算 add-ins

热门文章

  1. 自然语言处理(NLP):23 Word2Vec词向量研究以及实践
  2. Word文档转PDF的功能
  3. 计算机中正数和负数相加,负数减正数公式 正数与负数相加公式
  4. 把hao123网页用html写出来,hao123改版之用户体验
  5. 3D建模在线展示/三维模型可视化线上VR智慧城市
  6. MVC用AuthorizeAttribute登录验证
  7. 应用协议 tcp udp
  8. 石油化工设备维护检修规程_2020年(第六届)全国石油化工企业设备维护与检修高端研讨会组委会全体成员祝大家国庆、中秋双节愉快!...
  9. 3322linux自动更新ip,ubuntu开机自动运行动态域名更新
  10. 【Python游戏开发】史上最有趣的一款象棋代码,真是太好玩了,这些人都说它比国际象棋更好玩,不服你往下看?(敲赞啊~)