自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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嵌入式应用入门--wifi sta

本文介绍wifi从机,连接电脑的热点,在电脑上可以看到模块的信息

2024-07-02 10:09:00 1007 1

原创 Hi3861 OpenHarmony嵌入式应用入门--wifi hotspot

本文介绍模块作为热点,使用手机可以进行连接,并输出mac地址

2024-07-02 10:00:37 435

原创 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嵌入式应用入门--中断按键

本篇讲解gpio的中断使用方式。硬件原理图如下,与上一篇一样的电路。

2024-06-18 13:52:18 636

原创 Hi3861 OpenHarmony嵌入式应用入门--轮询按键

本篇介绍使用轮询方式读取gpio状态来判断按键状态。原理图如下。

2024-06-18 13:49:22 323

原创 Hi3861 OpenHarmony嵌入式应用入门--点灯

本篇实现对gpio的控制,通过控制输出进行gpio的点灯操作。

2024-06-17 15:31:18 544

原创 Hi3861 OpenHarmony嵌入式应用入门--hello world

开发板hello world

2024-06-17 15:18:37 606

原创 Hi3861 OpenHarmony嵌入式应用入门--总引导连接

这篇没有内容,只是根据内容先后顺序进行连接汇总。

2024-06-17 14:58:01 655

原创 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

原创 Hi3861 OpenHarmony嵌入式应用入门--鸿蒙开发环境搭建

本篇将进行hi3861开发环境的搭建,并能够编译默认工程。

2024-04-02 16:08:12 1760 13

原创 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

原创 基于匿名上位机V7的数据通信代码

代码借鉴并在此代码基础上进行修改。截止文章发布时匿名上位机版本为V7.2.5.26。

2024-01-04 14:49:33 1068

原创 STM32使用printf重定向到USART

STM32使用printf重定向到USART

2023-12-26 13:41:43 907 2

原创 gdbus使用G_BUS_TYPE_SYSTEM做开机自启服务

gdbus使用G_BUS_TYPE_SYSTEM做开机自启服务

2023-11-30 10:20:17 371

NppAStyle_bin.zip

下载后打开这个压缩文件,有两个文件夹ansi和unicode(ansi是标准编码,支持语言少;unicode是通用编码,支持更多的语言)。打开unicode文件夹,将NppAStyle.dll放置到Notepad安装目录下的plugins文件夹下。 重启Notepad。 配置NppAStyle,点击菜单栏中的"插件"--->"NppAStyle"--->"options",在代码风格中选择java。

2016-08-15

openssl-0.9.8e.tar.gz

openssl-0.9.8e.tar.gz 官方源码,未做任何改动。

2016-08-07

wpa_supplicant-0.7.3.tar.gz

wpa_supplicant-0.7.3.tar.gz官方源码文件,未做任何改动。

2016-08-07

rt2870.bin

rt2870.bin,linux内核在使用RT5370无线网卡时需要的固件文件。

2016-08-07

MT7601U驱动源码

MT7601U驱动源码,可在ubuntu,可移植到嵌入式,在我的博客中有详细过程。

2016-07-25

QTmaketarget

提取编译好的QT文件脚本。

2016-07-22

MinGW 4.4,qt使用

MINGW4.4,qt在windows下使用的mingw文件。

2016-07-22

qt4.8.5编译文件

qt4.8.5编译好的文件,使用的是ok6410官方提供的3.0.1内核, arm-linux-gcc-4.3.2.tgz编译。

2016-07-22

tslib交叉编译好的文件

tslib交叉编译好的文件,是ok6410官方3.0.1内核, arm-linux-gcc-4.3.2.tgz编译好的文件。

2016-07-22

RT5370驱动源码

RT5370的驱动源码,可以在linux下进行移植编译,已经验证成功,可以在我的博客了解移植过程。

2016-07-20

sqlite-autoconf-3130000.tar.gz

sqlite-autoconf-3130000.tar.gz

2016-05-22

glib-2.22.5.tar.gz

glib-2.22.5.tar.gz库代码

2016-05-22

libffi-3.2.1.tar.gz

libffi库源代码

2016-05-22

fs4412_led_kernel.zip

FS4412开发板led驱动程序,在fs4412内核移植实验中的配套程序。

2016-05-21

FS4412系统移植uboot移植实验代码

FS4412系统移植uboot移植实验代码,包括uboot2013源码,三星加密文件,移植需要修改的代码,移植好的能用的代码

2016-05-21

FS4412系统移植实验手册-uboot移植

FS4412系统移植实验手册-uboot移植

2016-05-21

FS4412内核镜像文件3.14

FS4412 linux内核镜像文件3.14

2016-05-18

FS4412 sd卡启动u-boot文件

FS4412 sd卡启动u-boot文件

2016-05-18

FS4412 nfs镜像文件

FS4412 nfs镜像文件

2016-05-18

FS4412文件系统镜像文件

FS4412文件系统镜像文件

2016-05-18

MyApplicationC1.zip

在android app中调用自己的c代码,这个c代码会以动态库的形式存在,并且为了表示更广泛的使用场景,我们的c程序会使用第三方库(openssl),这也是我们开发中经常用的方式。

2020-04-02

mylib-sample.zip

可以使用ndk进行编译的例子工程。程序中使用了openssl的函数,这样就形成了一个库引用库的过程,这个通了就基本都通了。

2020-04-01

从1开始写一个操作系统.pdf

使用一个STC15W56S4的板子,而且STC还提供了外设的库,我们可以直接拿来作为bsp使用。我使用的是keil5。一个支持时间片和优先级的抢占式实时系统。支持动态内存。这个系统支持任务间通讯,至少要支持信号量,最好能够支持消息队列和共享内存,并且最好能提供一种广播方式。提供一个友好的shell工具。

2019-09-26

RT-OSforSTC15W.zip

从1开始写一个操作系统 教程源码,使用一个STC15W56S4的板子,而且STC还提供了外设的库,我们可以直接拿来作为bsp使用。我使用的是keil5。一个支持时间片和优先级的抢占式实时系统。支持动态内存。这个系统支持任务间通讯,至少要支持信号量,最好能够支持消息队列和共享内存,并且最好能提供一种广播方式。提供一个友好的shell工具。

2019-09-22

CMake官网教程中的工程

CMake入门笔记--CMake官网教程中的工程,可以在有cmake的环境下直接进行编译,运行。注释详细,方便学习。

2019-08-20

dueros.zip

在与小度智能音箱对接时需要使用的php代码,这套代码是完全可以运行的,稍加改动就可以使用,但是距离实际应用还差很多,这个代码只是初期学习阶段使用。

2019-07-23

天猫精灵对接php源码

在与天猫精灵对接时需要使用的php代码,这套代码是完全可以运行的,稍加改动就可以使用,但是距离实际应用还差很多,这个代码只是初期学习阶段使用。

2019-01-27

博客使用代码

博客中提到的代码例子,上传原始文件,方便学习使用。

2018-11-18

nanomsg-1.1.4.tar.gz

nanomsg是一个套接字库,提供了几种常见的通信模式。 它旨在使网络层快速,可扩展且易于使用。 在C中实现,它适用于各种操作系统,没有进一步的依赖性。

2018-09-22

libcyaml-master.zip

用于读写YAML的C库。它使用ISO C11编写,并根据ISC许可进行许可。

2018-09-22

线程消息队列

所谓线程消息队列,就是一个普通的循环队列加上“多生产者-单(多)消费者的存/取操作”。流水线方式中的线程是单消费者,线程池方式中的线程是多消费者。

2018-09-16

inirw源码文件

主要特点: 1、支持;和#注释符号,支持行尾注释。 2、支持带引号'或"成对匹配的字符串,提取时自动去引号。引号中可带其它引号或;#注释符。 3、支持无section或空section(名称为空)。......

2018-09-16

nxjson源码文件

用C编写的非常小的JSON解析器,从以null结尾的字符串解析JSON,易于使用的树遍历API。

2018-09-16

libxml2源码文件

Libxml2是为Gnome项目开发的XML C解析器和工具包(但可以在Gnome平台之外使用),它是MIT License下的免费软件。

2018-09-16

rtlist源码

从linux内核中提取出来的链表实现,在我的博客中有说明,其中有例子程序。

2018-08-31

香橙派烧写系统工具

香橙派烧写系统工具,烧写ubuntu以及armbian等系统所使用的U盘格式化以及镜像工具。

2018-06-25

shell扫雷脚本

shell写的扫雷游戏脚本,ujhk分别是上下左右,a是确认,在ubuntu12测试通过

2017-04-03

shell俄罗斯方块脚本

用shell写的俄罗斯方块脚本,ubuntu12测试通过

2017-04-03

shell猜数字脚本

用shell写的猜数字脚本,在ubuntu12下运行通过

2017-04-03

makefiledemo

makefile递归例程,我的csdn博客有详细说明和使用方法。

2016-11-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除