- 博客(454)
- 资源 (49)
- 收藏
- 关注
原创 ESP32神经网络初步使用
本文档描述了如何使用Python和TensorFlow训练一个简单的神经网络模型来预测正弦函数,并将其部署到ESP32微控制器上。
2024-08-20 09:39:59
724
原创 Hi3861 OpenHarmony嵌入式应用入门--华为 IoTDA 设备接入
华为云物联网平台(IoT 设备接入云服务)提供海量设备的接入和管理能力,可以将自己的 IoT 设备 联接到华为云,支撑设备数据采集上云和云端下发命令给设备进行远程控制,配合华为云物联网平台的服 务实现设备与设备之间的控制,设备与物联网平台之间的数据信息交互。在写代码之前先准备好华为云的环境。注册华为云账号,这里就不介绍了,有手机就行,需要进行实名认证。在控制台选择北京四,因为其他的可能需要企业才能使用,作为个人开发者就用北京四吧。创建设备实例。能看到设备实例的信息我们要是用的接入方式-mqtt。
2024-07-11 13:51:51
1281
原创 Hi3861 OpenHarmony嵌入式应用入门--HTTPD
httpd 是 Apache HTTP Server 的守护进程名称,Apache HTTP Server 是一种广泛使用的开源网页服务器软件。本项目是从LwIP中抽取的HTTP服务器代码;`Hi3861 SDK`中已经包含了一份预编译的lwip,但没有开启HTTP服务器功能(静态库无法修改);
2024-07-11 13:40:08
455
原创 Hi3861 OpenHarmony嵌入式应用入门--SNTP
sntp(Simple Network Time Protocol)是一种网络时间协议,它是NTP(Network Time Protocol)的一个简化版本。本项目是从LwIP中抽取的SNTP代码;`Hi3861 SDK`中已经包含了一份预编译的lwip,但没有开启SNTP功能(静态库无法修改);需要保证模块连接的热点能够访问网络的。
2024-07-05 10:00:50
504
3
原创 Hi3861 OpenHarmony嵌入式应用入门--MQTT
MQTT 是机器对机器(M2M)/物联网(IoT)连接协议。它被设计为一个极其轻量级的发布/订阅消息传输 协议。对于需要较小代码占用空间和/或网络带宽非常宝贵的远程连接非常有用,是专为受限设备和低带宽、 高延迟或不可靠的网络而设计。这些原则也使该协议成为新兴的“机器到机器”(M2M)或物联网(IoT)世界 的连接设备,以及带宽和电池功率非常高的移动应用的理想选择。例如,它已被用于通过卫星链路与代理 通信的传感器、与医疗服务提供者的拨号连接,以及一系列家庭自动化和小型设备场景。
2024-07-05 09:57:25
1101
原创 Hi3861 OpenHarmony嵌入式应用入门--UDP Client
本篇使用的是lwip编写udp客户端。需要提前准备好一个PARAM_HOTSPOT_SSID宏定义的热点,并且密码为PARAM_HOTSPOT_PSK。还需要准备一个udp服务,服务ip为PARAM_SERVER_ADDR宏定义,端口为PARAM_SERVER_PORT宏定义。
2024-07-04 15:00:14
639
原创 Hi3861 OpenHarmony嵌入式应用入门--UDP Server
本篇使用的是lwip编写udp服务端。需要提前准备好一个PARAM_HOTSPOT_SSID宏定义的热点,并且密码为PARAM_HOTSPOT_PSK。
2024-07-04 14:58:19
326
原创 Hi3861 OpenHarmony嵌入式应用入门--TCP Client
本篇使用的是lwip编写tcp客户端。需要提前准备好一个PARAM_HOTSPOT_SSID宏定义的热点,并且密码为PARAM_HOTSPOT_PSK。还需要准备一个tcp服务,服务ip为PARAM_SERVER_ADDR宏定义,端口为PARAM_SERVER_PORT宏定义。
2024-07-03 16:11:59
457
原创 Hi3861 OpenHarmony嵌入式应用入门--TCP Server
本篇使用的是lwip编写tcp服务端。需要提前准备好一个PARAM_HOTSPOT_SSID宏定义的热点,并且密码为PARAM_HOTSPOT_PSK
2024-07-03 16:08:04
853
原创 Hi3861 OpenHarmony嵌入式应用入门--LiteOS MessageQueue
CMSIS 2.0接口中的消息(Message)功能主要涉及到实时操作系统(RTOS)中的线程间通信。在CMSIS 2.0标准中,消息通常是通过消息队列(MessageQueue)来进行处理的,以实现不同线程之间的信息交换。
2024-06-25 16:27:12
578
原创 Hi3861 OpenHarmony嵌入式应用入门--LiteOS Semaphore做计数
可以将其初始化为一个特定的值(比如你想要计数的最大值),然后每次计数增加或减少时,就调用 Semaphore 的 release() 或 acquire() 方法。但请注意,这样做可能不是最直观的,因为 acquire() 方法的调用可能会阻塞,直到 Semaphore 的内部计数器大于零。
2024-06-25 16:15:56
467
原创 Hi3861 OpenHarmony嵌入式应用入门--LiteOS Semaphore做同步使用
创建一个Semaphore对象,并指定一个初始的计数值(通常称为“许可”或“令牌”的数量)。这个计数值表示当前可用的资源数量或可以同时访问共享资源的线程数。当一个线程需要访问共享资源时,它会尝试从Semaphore对象中获取一个许可。如果Semaphore的当前计数值大于0,线程会立即获得一个许可,并且计数值减1。线程现在可以安全地访问共享资源。如果Semaphore的当前计数值为0(表示没有可用的许可),线程会被阻塞(挂起),直到有其他线程释放一个许可。
2024-06-25 16:14:42
442
原创 Hi3861 OpenHarmony嵌入式应用入门--LiteOS semaphore作为锁
CMSIS 2.0 接口中的 Semaphore(信号量)是用于嵌入式系统中多线程或中断服务例程(ISR)之间同步和共享资源保护的重要机制。Semaphore 是一种用于控制对多个共享资源访问的同步机制。它可以被看作是一个计数器,用于跟踪可用资源的数量。
2024-06-25 16:13:00
1039
原创 Hi3861 OpenHarmony嵌入式应用入门--LiteOS Mutex
CMSIS 2.0接口中的Mutex(互斥锁)是用于在多线程环境中保护共享资源的访问机制。Mutex(互斥锁)是一种特殊的信号量,用于确保同一时间只有一个线程可以访问特定的共享资源。在嵌入式系统或多线程应用中,当多个线程需要访问同一资源时,如果没有适当的同步机制,可能会导致数据不一致或其他问题。Mutex就是用来解决这类问题的。这些函数通常不能在中断服务程序(ISR)中调用,因为中断的上下文可能与这些函数的设计不符。在使用Mutex时,必须确保正确地获取和释放锁,以避免死锁或其他同步问题。
2024-06-24 11:12:21
297
原创 Hi3861 OpenHarmony嵌入式应用入门--LiteOS Event
CMSIS 2.0接口使用事件标志是实时操作系统(RTOS)中一种重要的同步机制。事件标志是一种轻量级的同步原语,用于任务间或中断服务程序(ISR)之间的通信。每个事件标志对象可以包含多个标志位,通常最多为31个(因为第31位通常保留)。
2024-06-24 11:10:44
884
原创 Hi3861 OpenHarmony嵌入式应用入门--LiteOS Timer
LiteOS Timer(定时器)是LiteOS操作系统中的一个重要组件,它提供了一种基于软件模拟的定时器功能,用于满足在硬件定时器数量不足时的定时需求。
2024-06-21 15:11:30
696
原创 Hi3861 OpenHarmony嵌入式应用入门--LiteOS Thread
hi3861使用的实时系统主要是基于Huawei LiteOS-M,这是华为针对物联网领域推出的轻量级物联网操作系统内核。LiteOS-M是Huawei LiteOS的一个分支,专为IoT领域构建,主要面向没有MMU(内存管理单元)的处理器。它具备轻量级、低功耗、组件丰富、快速开发等关键能力,为开发者提供“一站式”完整软件平台。技术特点:轻量级:LiteOS-M内核小巧,适合在资源受限的设备上运行。低功耗:针对IoT设备的特点,LiteOS-M优化了功耗管理,使设备在运行时更省电。
2024-06-21 14:25:31
710
原创 Hi3861 OpenHarmony嵌入式应用入门--0.96寸液晶屏 iic驱动ssd1306
使用iic驱动ssd1306,代码来源hihope\hispark_pegasus\demo\12_ssd1306是从musl libc中抽取的 sin和 cos的实现;可用于将gif动图中的帧分离出来;可用于将图片转为C数组,每个字节表示8个像素;
2024-06-20 19:24:21
982
原创 Hi3861 OpenHarmony嵌入式应用入门--PWM 三色灯
这篇文章是讲解的pwm控制三色灯的部分,这部分也是后续全彩智能灯的基础。硬件原理如下IO管脚定义在hi-12f_v1.1.2-规格书-20211202.pdf文档中。
2024-06-20 16:24:17
414
原创 Hi3861 OpenHarmony嵌入式应用入门--ADC
本篇讲解使用ADC进行采样,并使用API将采样值转为电压。电路原理图通过hi-12f_v1.1.2-规格书-20211202.pdf 找到IO9对应的ADC通道。
2024-06-18 15:30:13
458
原创 Hi3861 OpenHarmony嵌入式应用入门--启动流程
Hi3861 的引导程序分为两部分,一部分是在芯片出厂时已经固定在 ROM,这部分的代码主要实现的功能是:芯片上电后,如果没有被打断(没有执行烧录过程)时会检验 flashboot,检验成功后跳转到flashboot 代码处运行;芯片上电后如果被打断(复位操作并执行烧录过程)时,下载 loaderboot,下载完之后校验成功跳转到 loaderboot 运行,汇编代码跳转到 C 代码,再下载其他镜像(burn、boot、signed)并烧录到 flash,结束后,按复位键,芯片启动。
2024-06-17 14:43:28
549
原创 Hi3861 OpenHarmony嵌入式应用入门--基于HI-12F开发板烧写程序
首先需要一个开发板,我已经在嘉立创上进行了开源,基于安信可hi-12f模块的开发板,集成了两个按键,一个三色灯,一个滑动变阻器,可外接一个0.96寸液晶。这篇文章先讲一下流程,如果你已经有了能下载的代码,就可以进行下载了。如果你还没有代码,是跟着我文章进行学习的,这篇可以先了解一下,等下一篇我们点灯了再进行下载操作。下载串口需要链接IO3,IO4.
2024-06-17 11:04:15
433
原创 百度语音识别开发笔记
最近想做一些语音识别的应用,对比了几个大厂提供的语音合成,其中有些提供了几个月免费试用,对于我想长期使用的显然是不合适,其中百度的语音识别可以按照调用量进行收费,对于我这种厂期小使用量非常合适,一条才3里,3条才1分。所以就做一下百度语音识别的集成,这里只讲一下最简单的使用,很多参数可以设置,需要自己去研究了。这篇文章讲了这个选项的用处,这个选项是打包时候是否压缩so,需要设置为压缩,这可能与百度编译库的时候的选项相关。经过上面步骤后就已经集成好了SDK,当然百度的文档里使用了另一个方法集成,也可以使用。
2024-05-06 16:42:36
1394
5
原创 基于arduino的ESP32上蓝牙midi音乐设备开发教程
首先看几个视频,大佬们做的东西,都是基于esp32。自制卡林巴电子琴,可通过蓝牙连接手机库乐队 MIDI Boy【理科生的第一件乐器】_哔哩哔哩_bilibili【Totoro】模仿“埙”的电子吹奏乐器_哔哩哔哩_bilibili相关的文章如下Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)_python解析midi-CSDN博客【MIDI_Boy】使用ESP32做一个炫酷的【卡林巴】【电子琴】, 可通过蓝牙MIDI连接手机库乐队_esp32 midi-CSDN博客。
2024-04-16 16:01:58
1186
原创 Arduino中引脚的数字与真实引脚的对应关系
我们使用arduino开发时,最长遇到的是对端口管脚的拉高拉低,代码如下上面还最简单io控制代码,其中引脚我们使用了数字13,但是这个13对应着哪个引脚呢?我们一般会有开发板的示意图上面的Dx就对应着引脚数字。这个还好理解。但是当我们使用STM32开发板时候怎么对应呢?我们知道STM32不是简单的GPIO+数字的方式,而是还有ABCDE等,这样我们就不能简单的认为1对应GPIO1了。下面我们根据源码分析一下这个数字是如何转为引脚地址的。
2024-03-27 17:28:08
737
原创 基于STM32F407的coreJSON使用教程
coreJSON是FreeRTOS中的一个组件库,支持key查找的解析器,他只是一个解析器,不能生成json数据。同时严格执行 ECMA-404 JSON 标准。该库用 C 语言编写,设计符合 ISO C90 和 MISRA C。它已被证明可以安全使用内存,并且无需堆分配,使其适用于 IoT 微控制器,而且还可以完全移植到其他平台。内存使用如下:内存使用情况JSON 库中的所有函数仅在提供的栈上运行,并且仅使用栈上的局部变量。为了支持仅静态使用,根据需要重新解析,这样就不需要保留状态。解析严格性。
2024-02-19 11:38:50
964
原创 Unity(单元测试)在STM32上的移植与应用
Unity Test是一个为C构建的单元测试框架。本文基于STM32F407为基础,完全使用STM32CubeIDE进行开发,移植和简单使用Unity。单片机型号:STM32F407VET6软件:STM32CubeIDE Version: 1.14.1 Unity Version:2.6.0。
2024-02-14 17:48:07
2368
原创 letter shell在STM32F4上基于freeRTOS的移植
是一个C语言编写的,可以嵌入在程序中的嵌入式shell,主要面向嵌入式设备,以C语言函数为运行单位,可以通过命令行调用,运行程序中的函数。拥有命令自动补全、快捷键功能定义、命令权限管理、用户管理、变量支持、代理函数和参数代理解析等功能。letter-shell: letter shell一个嵌入式小型shell,特别适用于单片机系统。
2024-01-18 16:48:14
1380
原创 vscode如何设置doxygen并生成文档
在这个网站,选择对应的平台版本,我选择的是windows的.zip版本,这个版本不需要安装。当准备好以上带注释的源码后就可以使用软件生成说明文档了。文件-》首选项-》设置,在其中搜索doxygen。在文章开头打“/**”回车,就会生成文件头部。在函数头部打“/**”回车,就会生成函数说明。解压后运行doxygen.exe。
2024-01-16 15:24:11
1617
NppAStyle_bin.zip
2016-08-15
MyApplicationC1.zip
2020-04-02
从1开始写一个操作系统.pdf
2019-09-26
RT-OSforSTC15W.zip
2019-09-22
nanomsg-1.1.4.tar.gz
2018-09-22
inirw源码文件
2018-09-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人