ESP8266:SDK开发(源码见资料源码)
开发板购买链接:开发板购买链接
资料源码:https://gitee.com/yang456/Learn8266ForSDK.git
开发软件:https://mnifdv.cn/resource/cnblogs/Learn8266ForSDK/AiThinkerIDE_V0.5_Setup.exe
淘宝上许多贩卖TCP,UDP,APP,上位机,MQTT,云服务器等基础控制教程的,但是基础的没必要拿出来贩卖!
因为过于简单,只能个人玩玩而已,感觉像是在坑小学生。故,我给大家整理好,开源出来以供大家学习使用!
RTOS(2.2.0)
RTOS(2.2.0)
RTOS(2.2.0)
注:延时,软件定时器,硬件定时器,只需要包含 #include "osapi.h"
1.延时
os_delay_us(us)
2.软件定时器
#include "osapi.h" os_timer_t os_timer_one;//定义软件定时器结构体变量 /** * @brief 定时器回调函数 * @param parg:传入的配置os_timer_setfn函数最后的参数 * @param None * @param None * @param None * @retval None * @warning None * @example **/ void os_timer_one_function(void *parg) { os_printf("parg:%s\n", parg);//打印一下传过来的参数 } //配置定时器 os_timer_setfn(&os_timer_one,os_timer_one_function,"yang");//os_timer_one:定时器结构体变量 os_timer_one_function:回调函数 yang:传给回调函数的参数 //使能定时器 os_timer_arm(&os_timer_one,500,1);//os_timer_one:定时器变量 500:500ms进一次 1:循环
测试
停止定时器
void os_timer_disarm (os_timer_t ∗ptimer)
os_timer_disarm(&os_timer_one)
3.硬件定时器
/** * @brief 硬件定时器中断回调函数 * @param None * @param None * @param None * @param None * @retval None * @warning None * @example **/ u32 cnt = 0; void hw_test_timer_cb(void) { cnt++; if(cnt>1000)//1S { cnt=0; os_printf("1111111111111\n");//打印 } } //定时器初始化 hw_timer_init(0,1);//1:循环 //设置定时器回调函数 hw_timer_set_func(hw_test_timer_cb);//hw_test_timer_cb:硬件定时器中断回调函数 hw_timer_arm(1000);//1000:1000us定时进入中断函数
测试
RTOS
RTOS
RTOS
1.延时
/** * @brief Delay function, maximum value: 65535 us. * * @param uint16 us : delay time, uint: us, maximum value: 65535 us * * @return null */ void os_delay_us(uint16 us);
软件定时器
代码
#include "esp_timer.h"
/** * @brief 定时器回调函数 * @param parg:传入的配置os_timer_setfn函数最后的参数 * @param None * @param None * @param None * @retval None * @warning None * @example **/ void os_timer_one_function(void *parg) { printf("parg:%s\n", parg);//打印一下传过来的参数 }
//配置定时器 os_timer_setfn(&os_timer_one,os_timer_one_function,"yang");//os_timer_one:定时器结构体变量 os_timer_one_function:回调函数 yang:传给回调函数的参数 //使能定时器 os_timer_arm(&os_timer_one,500,1);//os_timer_one:定时器变量 500:500ms进一次 1:循环
测试
解除定时器
void os_timer_disarm (os_timer_t ∗ptimer)
os_timer_disarm(&os_timer_one)
硬件中断定时器
代码
#include "hw_timer.h"
/** * @brief 硬件定时器中断回调函数 * @param None * @param None * @param None * @param None * @retval None * @warning None * @example **/ u32 cnt = 0; void hw_test_timer_cb(void) { cnt++; if(cnt>1000)//1S { cnt=0; printf("1111111111111\n");//打印 } }
//定时器初始化 hw_timer_init(1);//1:循环 //设置定时器回调函数 hw_timer_set_func(hw_test_timer_cb);//hw_test_timer_cb:硬件定时器中断回调函数 hw_timer_arm(1000);//1000:1000us定时进入中断函数