- 博客(133)
- 资源 (41)
- 问答 (3)
- 收藏
- 关注
原创 图片转数据、二进制、BMP格式、WBMP格式、Sigmatel格式
在图像处理中,“灰度输出”指的是将图像的颜色信息转化为灰度(或称为黑白)图像的过程。灰度图像是一种仅包含亮度信息的图像,其中每个像素的值代表该像素的亮度(通常范围在0到255之间),而不包含颜色信息。其中二进制的就是将这个数组的数据形成了一个二进制文件,实则是一样的。要是想在屏幕上显示图片,可以先试着使用数组数据,便于调试。也是根据自身的显示设备选择,只能显示16位彩色的就选16位。能支持的越高显示的越真实。其中二进制emb和bin差不多,需要用bin就直接将emb改为bin就可以了。
2024-11-01 15:13:51 343
原创 matter的Commissioning(入网过程)整体流程、加密方式、通信信息结构
在Matter协议中,**控制器负责将新设备加入网络(commissioning)**的整个流程,这一过程包括设备的发现、验证、授权、加入Fabric,以及最终建立数据通信的步骤。配网完成后的数据通信过程同样遵循严格的加密方式,以确保设备之间的通信安全可靠。
2024-09-05 20:13:33 947 3
原创 matter消息中的组播和广播
Group ID的分配控制器配置:在Matter协议中,Group ID是由控制器(如智能家居系统或应用)分配给设备的。控制器通过与设备的通信,将一个或多个Group ID分配给特定的设备。每个Group ID标识了一个设备组,控制器可以通过这些ID来实现群组控制。Group Key(组密钥):在为设备分配Group ID时,控制器还会为该设备分配对应的组密钥(Group Key)。这个密钥用于确保只有被授权的设备才能正确解码和响应组播消息。这种机制保障了群组通信的安全性。
2024-09-05 19:59:33 653 1
原创 matter中的Fabric(网络结构)
什么是Fabric?Fabric可以被理解为一组相互信任的设备和控制器,它们共享一个共同的信任域。这意味着在同一个Fabric中的设备和控制器之间可以进行安全的通信,而无需额外的身份验证或安全检查。每个Fabric有一个唯一的标识,确保Fabric之间是隔离的,防止权限混乱。一个Matter Fabric就是一个Matter网络,一个Matter Fabric中的所有节点共享同一个根证书,所以他们可以相互通信,每个Matter Fabric会分配一个64bit的ID进行标识。一般来说,一个Matter生态
2024-09-05 15:07:48 1543 1
原创 Matter协议解析
Matter只是一个应用标准,它的传输是建立在支持IPv6的TCP和UDP协议上的,Matter不对传输层进行约定,Matter也不对网络进行约定,但是Matter约定了只能使用Thread/Wi-Fi/Ethernet三种连接协议。如果需要连接其他协议,需要通过matter bridge进行连接处理。比如蓝牙、zigbee。
2024-09-05 14:51:41 1281 1
原创 FreeRTOS中的事件组:xEventGroupCreate、xEventGroupSetBits、xEventGroupWaitBits、xEventGroupSetBitsFromISR
假设我们有一个中断服务例程(ISR),它需要通知一个任务某个事件发生,可以使用。: 在中断上下文中设置事件组中的一个或多个位。:等待指定的位被设置,带有可选的超时参数。:设置事件组中的一个或多个位。:事件组在调用此函数之前的值。:清除事件组中的一个或多个位。:事件组在调用此函数之前的值。:满足条件时事件组的值。:创建一个新的事件组。:获取当前事件组的值。
2024-07-31 20:48:45 979 1
原创 FreeRTOS中的信号量:xSemaphoreCreateBinary,xSemaphoreCreateCounting,xSemaphoreCreateMutex
FreeRTOS中,信号量(Semaphore)是一种用于任务间同步和互斥的机制。信号量可以分为二进制信号量(Binary Semaphore)、计数信号量(Counting Semaphore)和互斥信号量(Mutex)。下面详细介绍信号量的创建、使用和释放。
2024-07-31 20:22:12 785 2
原创 FreeRTOS中的定时器:xTimerCreate ,xTimerStart ,xTimerStop
1. 创建定时器定时器的创建使用 xTimerCreate 函数。该函数有以下参数:pcTimerName:定时器的名字,主要用于调试。xTimerPeriodInTicks:定时器的周期,以系统节拍计时。uxAutoReload:定时器是否自动重载。如果为 pdTRUE,定时器将在到期后自动重启;如果为 pdFALSE,定时器将在到期后停止。pvTimerID:一个用户定义的标识符,可以在回调函数中使用。pxCallbackFunction:定时器到期时调用的回调函数。
2024-07-31 20:06:56 775
原创 LIS2DH12传感器底电流100ua处理
默认已经正常初始化IIC和LIS2DH12之后,需要正常开启和进入低功耗传感器的处理。主要是对两个寄存器的处理:20、1EODR[3:0]数据速率选择。默认值:0000(0000:断电模式;其他:见表31)LPen:低功耗模式启用。默认值:0 (0:高分辨率/正常模式,1:低功耗模式)(请参见第3.2.1节:高分辨率、正常模式、低功耗模式)
2024-07-29 21:20:31 343 2
原创 BLE广播包和扫描响应包的数据类型说明
Manufacturer Specific Data (0xFF)制造商特定的数据。数据长度:可变,包含公司标识符(2字节)和制造商数据。示例:0x0059 (Nordic Semiconductor) + Data
2024-07-29 20:33:10 585 1
原创 Nordic的IIC地址配置与通信
I2C设备的通信地址通常由硬件决定,并且通过设备上的引脚配置。在许多I2C设备上,有一些引脚(通常标记为A0, A1, A2等)用于设置设备的I2C地址。这些引脚可以通过连接到VCC(高电平)或GND(低电平)来设置不同的地址组合。
2024-06-28 20:28:12 592
原创 Nordic的QSPI四线SPI:D0、D1、D2、D3,以及低功耗使用
在SPI(串行外设接口)通信中,D0、D1、D2、D3通常指的是数据线,也叫做数据引脚或通道。这些引脚的使用可能会根据具体设备或配置的不同而有所变化。除了上述标准的引脚,有些SPI设备支持双向或四向SPI通信模式,分别称为双SPI(Dual SPI)和四SPI(Quad SPI),这些模式可以利用更多的数据线来提高数据传输速率。
2024-06-28 19:47:49 1058
原创 Nordic的ADC位数、增益调制与参考电压
nRF52840的SAADC支持内部参考电压和外部参考电压。内部参考电压通常为0.6V,外部参考电压可以通过外部引脚提供。默认情况下,内部参考电压是0.6V,并且通过增益配置进一步调整。增益设置用于放大或缩小输入信号,使其适配到ADC的输入范围。增益与参考电压共同决定了ADC输入信号的电压范围。例如,当使用内部参考电压0.6V时,不同的增益设置会改变ADC的实际输入范围。增益设置决定了参考电压如何扩展到输入信号范围。也就是设置参考电压就是大于你检测口的输入电压。
2024-06-27 20:39:00 504
原创 GPT-5 一年半后发布?对此你有何期待?
GPT-5的发布无疑将带来诸多新的应用场景和创新可能性。我们应积极思考如何利用这一技术提升我们的生活质量,同时也要做好迎接技术变革带来的挑战的准备。通过跨界合作和开放讨论,我们可以更好地迎接AI赋能下的未来。期待你的见解和分享,让我们一起畅想这个充满无限可能的未来!
2024-06-24 18:22:12 326
原创 关键字volatile
如果中断服务程序修改了一个共享变量的值,但编译器在主程序中对该变量进行了缓存或寄存器优化,主程序可能无法立即感知到这个变量的值已经发生了改变,导致程序对这个变量的操作结果与期望不符,造成数据不一致性。如果中断服务程序(ISR)中修改了某个变量的值,但编译器对该变量进行了优化,可能会导致意外的行为或者错误的结果。:如果多个线程同时访问一个变量,并且其中一个线程修改了该变量的值,但编译器对该变量进行了优化,可能会导致其他线程无法立即感知到该变量值的变化,从而导致数据不一致性的问题。
2024-04-03 19:05:06 457
原创 Static关键字可能带来的风险
比如在一个函数中定义后,该函数并没有多次调用,而大多数就是做一个初始化的存在,由此可能就会导致该内存并没有得到释放而浪费。变量的生命周期超出了它的预期范围,例如在堆上分配了内存并且没有正确释放,那么这块内存将永远不会被释放。为了解决这个问题,需要使用线程同步机制,如互斥锁,来确保在任何时刻只有一个线程能够访问和修改。这会导致计数器的值不正确,不符合预期。变量,而没有适当的同步机制,可能会导致竞态条件和不确定的行为。变量,它是全局共享的。时,可能会发生竞争条件,导致计数器的值不正确。变量可能会导致内存泄漏。
2024-03-22 19:39:55 590
原创 一分二的音频线进行双声道录音
音频线单头上的圈一般代表单声道 (Mono) 输出。这种单头通常是一个TRS插头,即 Tip-Ring-Sleeve 插头。这里,插头上的圈指的是它的两个环(Ring 和 Sleeve)部分。Tip(尖端): 代表信号的正极或左声道(在立体声系统中)。Ring(环): 代表信号的负极或右声道(在立体声系统中)。Sleeve(套): 代表地线。如果你看到一个单头插头上有一个圈,而不是两个(在TRS插头上),通常表示这是一个单声道(Mono)信号。这意味着这个插头传输的是一个声道的音频信号,而不是左右
2024-01-23 21:49:25 1038
原创 BLE蓝牙发送速率、BLE底层蓝牙分包机制、BLE底层蓝牙重发机制、BLE中的MTU、BLE中蓝牙连接后数据通道选择
BLE蓝牙发送速率、BLE底层蓝牙分包机制、BLE底层蓝牙重发机制、BLE中的MTU、BLE中蓝牙连接后数据通道选择
2024-01-22 21:43:56 3537 1
原创 浅述在线播放URL机制
播放器通常会使用一种称为"流式传输"(Streaming)的技术。这意味着播放器会从URL源动态下载音频数据,并在下载足够的数据后开始播放。播放器不会等待整个文件下载完成,而是在下载数据的同时播放。
2023-10-09 19:09:32 584
原创 Linux音频处理:MP3解码、PCM、播放PCM、ALSA(Advanced Linux Sound Architecture)、MPEG(Moving Picture Experts Group)
将MP3音频文件中的数字音频数据转换为可以播放或处理的音频信号的过程。MP3(MPEG-1 Audio Layer 3)是一种常见的音频压缩格式,用于将音频文件压缩到较小的文件大小,同时保持相对高的音质。Linux操作系统上的音频架构,用于处理音频输入和输出。它是Linux内核的一部分,并提供了一种标准的音频接口,用于访问计算机的音频硬件和驱动程序。ALSA的主要目标是提供高质量的音频支持,并在Linux系统中实现低延迟和高性能的音频处理。
2023-09-12 19:49:52 3370 2
原创 C与C++的函数相互调用
C 和 C++ 的函数可以相互调用,但需要一些特殊的注意事项,因为它们有不同的编译和链接规则以及一些语法差异。链接规则:C 语言的链接器通常使用 C 标准的函数命名和调用约定,而 C++ 链接器使用 C++ 的函数命名和调用约定。这意味着 C++ 可以支持函数重载和运算符重载,而 C 不能。如果你要在 C++ 中调用 C 函数,需要使用 extern "C" 块将 C 函数声明包裹起来,以告诉 C++ 编译器使用 C 的链接规则。
2023-09-11 20:27:31 2033
原创 温控器控制二管制空调或四管制空调
温控器是一种用于控制温度的设备,常见于空调、冰箱、热水器等家用电器中。二管制和四管制是温控器常见的两种控制方式,它们的主要区别在于控制输出的方式不同。当然还是要看针对控制的空调进行的选择。
2023-07-27 21:01:09 865 2
原创 蓝牙Mesh LPN节点
其中Friend节点P与低功耗节点 I、J和K为“友谊”关系,寻址到节点I、J或 K的消息将被好友节点P存储并转发,好友节点的转发仅在低功耗节点轮询好友节点以获得等待传送的消息时才会发生。使用好友安全资料加密的友谊消息:轮训(Friend Poll)、好友更新(Friend Update)、好友订阅列表(Friend Subscription List)添加/删除/确认好友节点发送至LPN的“被存储的消息”。好友订阅列表添加消息由低功率节点发送到好友节点,以指示要存储消息的组地址和虚拟地址的列表。
2023-07-24 20:22:14 439
原创 蓝牙Mesh中的Heartbeat和Heartbeat Publication
Heartbeat是指设备定期发送的小型消息,用于指示设备的存在和活动状态,而Heartbeat Publication是指设备将自己的状态信息以心跳消息的形式发布到整个网络中。Heartbeat是设备发送消息的行为,而Heartbeat Publication是设备将自己的状态信息发布到网络中的行为。
2023-05-30 20:01:02 1298 2
原创 NRF通信中使用的线圈、高频卡、低频卡
NRF的基本定义:NRF通信技术可以包括多种无线通信协议,其中包括NFC(Near Field Communication)协议,这是一种近场通信技术,通过接触或非接触方式传递信息。NFC是一种基于无线射频的短距离通信技术,通常工作在13.56 MHz的高频频段。NFC设备之间可以进行近距离的数据传输和交换,通常的传输距离在几厘米范围内。NFC技术支持两种主要模式:读取模式和写入模式。在读取模式下,一个设备可以读取另一个设备(如NFC标签)中存储的信息。在写入模式下,一个设备可以向另一个设备(如N
2023-05-19 20:57:44 2500
原创 GPIO引脚的模式设置:开漏、推挽、拉高、拉低、中断输入、串行通信、模拟输入输出、容错输入、PWM输出。过零检测介绍。
开漏输出(软件):将GPIO口设置为开漏输出模式,可以实现开漏输出控制方式,输出电平只能被拉低,而不能被拉高。在使用开漏输出时,需要外部接上一个上拉电阻,将输出电平拉高到高电平。开漏输出常用于驱动I2C总线、LED灯等场景中。 推挽输出(软件):将GPIO口设置为推挽输出模式,可以实现推挽输出控制方式,输出电平可以被拉高或拉低。在使用推挽输出时,不需要外部电阻。推挽输出常用于驱动电机、继电器等场景中。
2023-05-10 20:40:55 4616
原创 蓝牙mesh消息中的三种model: server models、client models、control models
网格应用程序是使用与发布-订阅范例进行通信的客户端-服务器体系结构来指定的。由于网状网络的性质以及对行为的配置是由配置客户端执行的识别,应用程序不会在单个端到端规范中定义,例如配置文件。相反,应用程序在客户端模型、服务器模型和控制模型中定义应用程序。
2023-05-10 20:05:37 628
原创 处理蓝牙BLE MESH消息的网络风暴
网络风暴的触发原因:由于消息广播的方式,可能会发生大量的消息传输和网络拥塞,导致网络效率降低,甚至崩溃。蓝牙mesh网络是基于广播的方式进行消息传输的,因此每个节点都会将消息广播给周围的节点,进而形成一个消息传递的网络。在某些情况下,由于节点数量过多、消息频繁发送等原因,可能会导致网络中出现大量的消息传输,从而引发网络风暴。
2023-03-28 23:15:21 1087
原创 433芯片的基本原理和对应优缺点理解
433芯片是一种无线射频收发器芯片,它的频率为433MHz。这种芯片通常用于无线遥控器、传感器、门铃、智能家居等产品中,可以实现简单的数据传输和控制。433芯片的工作原理是将数字信号转换为射频信号并通过无线信道发送,接收端将接收到的射频信号转换为数字信号并输出。它的优点是成本低、功耗低、传输距离较远(通常可达50米到100米),因此在一些需要简单无线传输的场景中得到了广泛的应用。需要注意的是,433芯片的频率是公共频率,也就是说它是被广泛使用的频率之一,可能会存在干扰问题。
2023-03-28 21:32:07 10014
原创 AI热点话题探讨
语音助手:智能音箱内置的语音助手,如Amazon的Alexa,可以通过语音识别和自然语言处理技术,帮助用户完成各种任务,如播放音乐、查询天气、订购外卖等等,这种个性化的服务让人感到非常的贴心和舒适。智能音箱最早的雏形可以追溯到20世纪90年代,当时美国的一些公司开始推出能够识别语音指令的家庭控制系统,但是当时的技术和市场条件并不成熟,这些系统并没有得到广泛的应用和普及。综上所述,AI技术对IT/计算机/软件等专业的毕业生带来的影响是多方面的,需要学生具备跨学科的知识和技能,灵活应对未来的职业挑战和机遇。
2023-03-28 00:16:56 2727
原创 红外码库的基本构建方法和码库数据格式介绍
构建红外码库的过程通常需要使用红外编码器和解码器,以及相关的工具和软件来进行录制和解析。具体步骤如下:准备工具:使用红外编码器和解码器,并连接到计算机上。另外,需要下载和安装相应的工具软件,例如WinLIRC、IRScrutinizer等。录制红外信号:使用红外编码器将需要录制的红外信号发送出去,并使用红外解码器将其接收下来。将接收到的信号保存为RAW格式的文件。解析RAW文件:使用工具软件打开RAW文件,并进行解析。解析后可以得到该红外信号的协议类型、设备码、功能码等信息。
2023-03-27 23:54:14 2257
原创 红外数据的基本原理和处理机制
红外数据的基本原理和处理机制红外数据的处理主要分为对应的接收和发送处理。数据要基于38K的载波进行数据的发送。红外常用的协议有NEC和RC-5。其中NEC:起始码:9ms低电平 + 4.5ms高电平逻辑0: 560us + 560us逻辑1: 560us + 1680us重复码 : 9ms低电平 + 2.5ms高电平RC-5:逻辑0: 889us低电平+889高电平逻辑1: 889us高电平+889低电平起始位(Start Bit):1bit,固定为逻辑"1".
2023-03-15 14:47:28 1450
原创 蓝牙设备中的Device UUID 与 Service UUID
iOS 设备上扫描获取到的 deviceId 是系统根据外围设备 MAC 地址及发现设备的时间生成的 UUID,是设备上的Core Bluetooth为该设备分配的标识符。对于已连接过的设备,UUID 会在一段时间内保持不变(正常是15-20分钟变化一次)。此外,UUID 也会在某些条件下可能会发生变化(如系统蓝牙模块重启、配对设备被忽略等),在不同的设备上获取到的 UUID 也是不同的。不同手机连接同一设备的uuid不是同一个。
2023-02-10 14:48:25 10894
原创 BLE MESH中标准的Light Lightness messages的数据包格式
Light Lightness的操作OP、Light Lightness Get数据包格式、Light Lightness Set数据包格式、Light Lightness Set Unacknowledged数据包格式、Light Lightness Status数据包格式
2022-12-15 19:46:09 605
原创 BLE MESH中的Secure Network beacon包
当在已知子网上接收到安全网络信标时,节点应监控IV索引更新和关键刷新过程。可以为节点所属的每个子网发送安全网络信标,以识别子网并通知IV索引更新和键刷新过程。中继节点和友节点应该发送信标,其他节点可以发送信标。发送两个连续信标之间的时间称为信标间隔。一个实现可以定义信标间隔和一个后退过程,以防止其他节点用太多的信标超载网络。预期的行为是,每个节点大约每10秒为一个给定的子网接收一个信标。
2022-12-13 21:06:20 668
原创 BLE MESH在配网广播中的Service UUID:1827与1828
1827:是一种服务的UUID,一般在广播包中中代表设备为未配网设备。也用于给配网器进行识别。在该服务下还有两个UUID,0x2ADB:用于写,0x2ADC:用于上报。在使用GATT配网阶段的数据交互都是通过这两个UUID进行的。1828:是一种服务的UUID,一般在广播包中中代表设备为已配网设备。也用于给配网器进行识别。在该服务下还有两个UUID,0x2ADD:用于写,0x2ADE:用于上报。是两个PROXY标识的UUID,代表设备有代理功能。
2022-11-08 18:58:18 952
原创 BLE中的Service(服务)和characteristic(特征值)
Service(服务):服务是用来完成特定功能或特性的数据和相关行为的集合。在GATT中,服务由其服务定义来定义。服务定义可能包含所包含的服务、强制性特征和可选特征。可用于搜索服务的服务的重要属性被表示为uuid。characteristic(特征值):特征是在服务中使用的值,以及关于如何访问该值的属性和配置信息,以及关于如何显示或表示该值的信息。特征定义包含特征声明、特征属性和值。它还可以包含描述值或允许服务器关于特征值的配置的描述符。
2022-10-12 19:24:37 7299 1
BeyondComparePortable
2020-10-26
嵌入式实时操作系统μCOS-II原理及应用
2020-05-23
UCOSIII资料,包含源码,配置与初始化,任务调度算法研究
2020-05-22
NB-IOT模块配置器,WH-NB_Set V1.0.7
2020-05-22
stc-isp-15xx-v6.86u.exe
2020-05-22
毕设,stm32f407使用EMVIN写图形界面,wifi数据上传,Lora数据接收
2020-05-22
毕设,stm32f407使用甲醛传感器,温湿度,g7采集PM2.5,wifi
2020-05-22
stm32f407使用烟雾,火焰,光照,温湿度,继电器,WiFi连接onenet
2020-02-15
stm32f407串口3接收数据,串口1wifi发送到onenet显示
2020-02-05
stm32f407使用MQ4,温湿度,光照,继电器模块
2019-12-31
stm32f407使用舵机,土壤,温湿度,光照,继电器模块
2019-12-31
2019年电赛h题电磁曲线炮,stm32f407控制
2019-08-12
stmf407核心控制板控制两个舵机的云台
2019-08-12
stm32f407使用超声波HC_SR04
2019-08-08
stm32f407使用MG 996r舵机
2019-07-12
stm32f407使用JGB37-520直流电机
2019-07-12
stm32f407控制42步进电机
2019-07-12
stm32f407使用大气压,温湿度,WiFi,PM2.5传感器
2019-05-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人