- 博客(28)
- 资源 (2)
- 收藏
- 关注
原创 ESP32编辑笔记(9)——Smartconfig
随着智能家居,物联网的兴起,越来越多的设备需要连接家庭wifi网络。而WIFI网络的接入是需要知道无线路由器的SSID和密码。大部分的设备是没有输入接口的,在设备中预置WIFI的SSID和密码是不现实的,为了解决这个问题,smartconfig配网方式应运而生。ESP8266,ESP32使用了ESP-Touch协议,采用的是Smartconfig(快连)技术。当前设备没有和其他设备建立任何实际连接状态下,使用smartconfig一键配置该设备接入WIFI。
2024-02-27 22:54:31 1383
原创 ESP32编程笔记(8)——TCP client
TCP客户端通信流程使用socket函数创建一个socket设置服务端ip地址和端口连接服务器收发数据。
2024-02-22 23:13:22 444
原创 ESP32编程笔记(7)——UDP通讯
UDP是无连接的,即发送数据之前不需要建立连接UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。UDP支持一对一、一对多、多对一、多对多的交互通信。UDP的首部开销小,只有8字节,比TCP的还要短。
2024-02-21 22:24:12 1256
原创 ESP32——事件监听
由于ESP32使用了FreeRTOS实时操作系统,所以避免不了事件,任务的使用。使用事件组件库可以申明其他组件可以向其注册处理程序的事件,代码将在事件发生时执行。这允许松耦合的组件将所需的行为附加到其他组件的状态更改。
2023-07-09 22:45:15 1067
原创 ESP32——FreeRTOS
ESP-IDF FreeRTOS 是基于 Vanilla FreeRTOS v10.4.3参考: 乐鑫freeRTOS中文文档原版 FreeRTOS 允许端口和应用程序通过向 添加各种宏来配置内核。通过这些宏,可以启用或禁用内核的调度行为和各种内核功能。但是,在 ESP-IDF FreeRTOS 中,“FreeRTOSConfig.h”文件被视为私有文件,用户不得修改。向用户公开的任何 FreeRTOS 配置都将通过 menuconfig 完成。#define config…FreeRTOSConfig.h
2023-04-17 22:07:39 1288
原创 ESP32编程笔记(三)新建一个ESP32工程,并输出Hello world
1.在esp-idf下新建一个目录esp32,esp32将用做开发工程的根目录。在该目录下新建hello_world文件夹2.进入hello_wold文件夹之后创建一个文件夹两个文件main文件夹:用来存放源码CMakeLists.txt:配置该工程。Makefile:2.1在CMakeLists.txt文件中添加如下内容cmake_minimum_required(VERSION 3.5)include($ENV{IDF_PATH}/tools/cmake/project.cmake)
2022-01-11 11:14:18 1277 1
原创 ESP-IDF 编程笔记(二) ESP32简介
内容来自乐鑫官网和安心可官网,更多详细介绍请浏览官网。乐鑫安信可1.简介:ESP32系列模组具备卓越的性能和丰富的外设,集成Wi-FI、传统蓝牙、低功耗为一体,提供高度集成的解决方案,广泛适用于各类物联网。2.特点a.性能稳定 ESP32性能稳定,工作范围达到-40C到+125C。集成的自校准电路实现了动态电压调整,可以消除外部电路的缺陷并适应外部条件的变化。b高度集成 ESP32将天线开关、RF balun、功率放大器、接收低噪声放大器、滤波器、电源管理模块等功能集成与一体。ESP32
2021-12-23 22:57:13 6561
原创 ESP-IDF 编程笔记一 Ubuntu20.04开发环境搭建
官网文档安装环境参考了安信可提供的博客,传送门1.安装相关依赖sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-01.1Python设置我的系统自带python3.6,将python更新即可sudo apt-get upgrade pytho
2021-12-20 13:59:53 3275 1
原创 Linux系统编程——标准IO
文件IO与标准IO的区别文件IO:是直接调用内核提供的系统调用函数,头文件是unistd.h标准IO:是间接调用系统函数,头文件是stdio.h三个缓存概念用户空间缓存程序中的缓存,可以是定义的数组变量内核空间缓存我们打开一个文件,内核在内核空间都会开辟一块缓存,这个叫内核空间缓存文件IO的写即时将用户空间中的缓存写到内核空间的缓存中文件IO的读即是将内核空间中的缓存写到用户空间的缓存中库缓存printf满足一定的条件:遇到\n时,即会将缓存的内容写到内核中,即调用了系统俺叔
2021-12-20 13:31:18 169
原创 Linux系统编程——文件IO
文件IO应用层 ,内核层,硬件层Input Output所谓输入输出是站在应用层来看的,所谓输入就是内核输入到应用,输出指用户数据传到内核。输入输出涉及到文件IO。open打开或创建一个文件。//在fcntl.h文件中声明。函数作用:创建或打开某一个文件。/**第一个参数:char* 包含有文件名和路径第二个参数:打开文件的方式flag: O_RDONLY 只读 O_WRONLY 只写 O_RDWR 读写 O_CREAT 创建一个文件 O_EXIT 如果使用O
2021-12-20 13:31:02 103
原创 Linux系统编程——进程之间通信 无名管道&有名管道
进程通信:在用户空间实现进程通信是不可能的,通过Linux内核通信线程通信:可以在用户空间就可以实现,可以通过全局变量通信。进程案例代码#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main(){ pid_t pid; pid = fork(); if (pid == 0) //子进程 { int i = 0; for
2021-12-20 13:30:49 661
原创 Linux系统编程——套接字socket
Socketsocket(套接字)实质上提供了进程通信的端点,进程通信之前,双方首先必须建立各自的端点,否则是没有办法通信的,通过socket将IP地址和端口绑定之后,客户端就可以和服务器通信了。当我们访问套接字时,需要访问文件一样使用文件描述符。创建一个套接字可以使用**socket()**函数#include <sys/socket.h>int socket(int domain,int type, int product)返回值:成功返回套接字文件描述符。失败返回-1;
2021-12-20 13:30:27 183
原创 Linux系统编程——进程通信 信号通信
在内核中有一个对象叫信号,进程A与进程B通信在用户空间发送信号是不可能的。只能通过内核发送信号。信号对象在内核中已经存在了。内核空间有多少种信号?通过Linux命令Kill -l 便可以查看有多少种信号。前面数字代表信号ID,后面字符串为信号的宏,每个宏代表不同的功能。一共有64种信号。信号的发送:kill()----发送信号#include <signal.h>#include <sys/types.h>参数:pid: 正数:要接收信号的进程的进程号 0:
2021-12-20 13:30:12 144
原创 问题解决-esp-idf编译报错undefined reference to ‘app_main‘
新建idf工程,编译报错如下。解决方法在.C文件的同级目录的CMakeLists.txt文件里面添加函数**register_component()**即可解决错误。
2021-12-20 13:28:43 4387
原创 ESP32烧录问题
make flash提示A fatal error occurred: Invalid head of packet (0x80)
2021-12-05 17:37:02 985
原创 Linux系统编程 多线程
什么是线程线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。线程是独立调度和分派的基本单位。线程可以为操作系统内核调度的内核线程,如Win32
2021-09-10 20:54:15 267
原创 鸿蒙系统应用开发之——二维码生成
概述:能够根据给定的字符串信息和二维码图片尺寸,返回相应的二维码图片字节流。也可以通过二维码字节流生成二维码。本文将以一个点击按钮,将输入的字符串生成一个二维码为例。文章末尾附上源代码限制:1.当前仅支持生成QR二维码(Quick Response Code)。由于QR二维码算法限制,字符串信息的长度不能超过2953个字符。2.生成的二维码图片的宽度不能超过1920像素,高度不能超过1680像素。由于QR二维码是通过正方形阵列承载信息的,建议二维码采用正方形,当这个二维码采用长方形时,会在QR二维码
2021-08-22 17:09:37 1624
原创 鸿蒙系统应用——高德地图开发
文章目录DevEco studio配置高德地图控制台配置代码编写MainAblitySlice.java代码DevEco studio配置1.新建deveco工程2.在高德地图下载相关SDK,点这里下载3.将下载好的SDK解压之后拷贝到DevEco工程libs目录下高德地图控制台配置1.控制台新建一个应用,控制台地址如图:2.点击添加对应用进行配置key名称自取。AppId——获取方法:在MainAbility.java的onStart方法中添加如下代码: t
2021-08-21 00:33:31 2904 6
原创 鸿蒙系统应用——实现跑马灯效果
当文本过长时,可以设置跑马灯效果,实现文本滚动显示。前提是文本换行关闭且最大显示行数为1,默认情况下即可满足前提要求。代码如下。ability_slice_xml代码<?xml version="1.0" encoding="utf-8"?><DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:height="match_parent" ohos:width="match
2021-08-16 23:05:35 5581 1
原创 UCOSIII学习笔记3——第一个程序
main函数中通过OSTaskcreate()创建了一个名字为start_task的任务。在start_task任务中创建了一个LED1_task任务,实现了LED闪烁的效果。#include "system.h"#include "SysTick.h"#include "led.h"#include "includes.h"//#define START_TASK_PRIO 3//#define START_TASK_SIZE 512//OS_TCB StartTaskTCB;
2021-08-12 22:25:39 529
原创 UCOSIII学习笔记2——开发环境搭建
开发环境搭建——基于Keil1.拷贝一个STM32裸机工程。并新建一个文件夹UCOSSIII,如图所示2.在新建的文件夹里新建五个文件夹,分别是:uc-BSP,uc-CONFIG, uc-CPU ,uc-LIB, ucos-III3.接下来就是从官方源码里将文件拷贝到新建的文件里1)官方 uCOS-III 源码\Micrium_uC-Eval-STM32F107_uCOS-III\Micrium\Software\EvalBoards\Micrium\uC-Eval-STM32F107\BS
2021-08-09 21:48:52 1189 1
原创 UCOSIII学习笔记1——初识UCOSIII
UCOSIII学习笔记——初始UCOSIIIuCOSIII是一个可扩展的,可固化的,抢占式的实时内核,它管理的任务个数不受限制。它是第三代内核,提供了现代实时内核所期望的所有功能包括资源管理、同步、内部任务交流等。UCOSIII也提供了很多特性是其他实时内核中所没有的。比如能在运行时测量运行性能,直接的发送信号或消息给任务,任务能同时等待多个信号量和消息队列。Micrium提供了RTOS一套完整的组件,包括uc/FS、uC/TCP-IP、uC/GUI、uc/USB等。这些组件大部分可以单独执行除了uC/T
2021-08-09 21:47:55 743
原创 鸿蒙系统应用第一个APP开发体验
鸿蒙系统应用第一个APP开发体验搭建开发环境工具下载链接:DevEco Studio.傻瓜式的安装,下一步即可。安装好的界面如下:点击 Create HarmonyOs Peoject 新建一个工程这里我使用的是Java开发APP,所以选择 **Empty Ability(Java)**然后下一步。Peoject Name: 项目名称**Peoject Type:**项目的类型,这里开发的是应用程序所以选择Application。至于Service官方的解释如下。**Package
2021-06-28 20:20:52 564
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人