<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[江苏学蠡信息科技有限公司是一家国家高新技术企业，与众多高校深入开展产学研合作，有一支以硕博士为主导的研发和服务团队，获得自主知识产权十余项。围绕中国高等教育人工智能及物联网专业发展规划，创新性的推出人工智能类、物联网类、嵌入式类三大学科教学产品与培训服务。]]></title><description><![CDATA[欢迎从此https://lpwan.cc/了解我们]]></description><link>https://blog.youkuaiyun.com/ganwu5482</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ganwu5482]]></copyright><item><title><![CDATA[Hi3863的 配置引脚的功能的API ，uapi_pin_set_mode()]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/154360305</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/154360305</guid><author>ganwu5482</author><pubDate>Tue, 04 Nov 2025 08:30:00 +0800</pubDate><description><![CDATA[​：如果上一步将引脚设置为GPIO功能（通常是PIN_MODE_0），则需要再调用 uapi_gpio_set_dir(pin, dir)来设置它是输入还是输出。​：在使用任何引脚控制函数前，通常需要先调用 uapi_pin_init()来初始化Pinctrl子系统。​：调用 uapi_pin_set_mode(pin, mode)。功能冲突​：一旦将引脚设置为某种外设功能（如UART），就不应该再使用GPIO相关的函数（如。：将引脚设置为输出模式，用于控制外部设备，如点亮LED、驱动蜂鸣器。]]></description><category></category></item><item><title><![CDATA[Hi3861的配置引脚的功能的API，hi_io_set_func()]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/154361162</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/154361162</guid><author>ganwu5482</author><pubDate>Tue, 04 Nov 2025 04:30:00 +0800</pubDate><description><![CDATA[功能枚举值​：参数val的取值与具体的GPIO引脚绑定，不同引脚的可用功能枚举不同，使用时最好查阅手册或头文件（如 hi_io.h）以确定正确的枚举值。例如，对于GPIO9，HI_IO_FUNC_GPIO_9_GPIO表示将其作为。​：接着调用 hi_io_set_func(id, val)，将引脚配置为所需的功能（如PWM、I2C等）。HI_IO_FUNC_GPIO_9_PWM0_OUT则表示将其复用为PWM0的输出引脚。，而 HI_IO_FUNC_GPIO_9_PWM0_OUT则表示将其。]]></description><category></category></item><item><title><![CDATA[STM32基本定时器]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/153830264</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/153830264</guid><author>ganwu5482</author><pubDate>Fri, 24 Oct 2025 15:28:17 +0800</pubDate><description><![CDATA[TIM是英文timer的缩写。定时器最基本的功能就是定时器可以对输入的时钟进行计数，并在计数值达到设定值时触发中断。综上所述，定时器的核心本质就是一个计数器。STM32的定时器拥有16位计数器，这个16位计数器和预分频器，16位的自动重装寄存器共同构成了时基单元。由于这个时基单元的计数器和自动重装寄存器都是16位的，2的16次方为65536。]]></description><category></category></item><item><title><![CDATA[STM32 USART框图简介]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/153688966</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/153688966</guid><author>ganwu5482</author><pubDate>Tue, 21 Oct 2025 14:44:04 +0800</pubDate><description><![CDATA[当数据从移位寄存器转移到RDR时，只要CPU或DMA及时读走RDR中的数据，接收移位寄存器就可以直接移位接收下一次的数据了。TDR和RDR占用一个地址，在程序上只表现为一个寄存器(数据寄存器DR)，但实际硬件中是分成了两个寄存器：一个用于发送TDR(只写),一个用于接收RDR(只读)。数据传入发送移位寄存器时，发送移位寄存器就会在发生器控制的驱动下，向右移位，然后一位一位地将数据输出到TX引脚。了，管你有没有移位完成，我就立刻把下一个数据放在TDR等着，一旦移完了，新的数据就会立刻跟上。]]></description><category></category></item><item><title><![CDATA[STM32硬件I2C主机接收字节]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/153626454</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/153626454</guid><author>ganwu5482</author><pubDate>Mon, 20 Oct 2025 13:00:25 +0800</pubDate><description><![CDATA[摘要：本文详细分析了I2C主机接收数据的时序流程。关键点包括：1）起始流程与发送模式一致；2）接收最后一个字节前需提前设置NACK和STOP位，防止多收数据；3）单字节接收在EV6_1事件时设置，多字节在EV7_1事件时设置；4）STOP位不会中断当前字节传输，而是等待完成后再生效。这种设计确保了主机能精确控制接收数据的结束时机。（148字）]]></description><category></category></item><item><title><![CDATA[STM32中硬件I2C的时钟占空比]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/153585381</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/153585381</guid><author>ganwu5482</author><pubDate>Sun, 19 Oct 2025 20:47:37 +0800</pubDate><description><![CDATA[摘要：I2C时钟占空比仅在快速模式（100-400kHz）下有效，标准模式（≤100kHz）默认1:1占空比。快速模式下周期缩短，SCL电平转换时间不足，需通过占空比（16:9或2:1）增加低电平时间，确保数据稳定。协议要求低电平时间≥高电平时间，且SCL（时钟信号）需周期性稳定，故占空比针对SCL而非SDA。波形图显示，频率越高，上升沿越缓，400kHz时甚至形成三角波。占空比参数通过调整低电平占比，保障数据在快速传输时的可靠性。]]></description><category></category></item><item><title><![CDATA[python单线程异步编程asyncio]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/146497063</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/146497063</guid><author>ganwu5482</author><pubDate>Tue, 25 Mar 2025 10:47:59 +0800</pubDate><description><![CDATA[asyncio是python中的一个内置库，主要用来编写单线程并发代码，它是用过协程来实现底，提供了基于事件的并发模型。]]></description><category></category></item><item><title><![CDATA[TCS34725颜色识别模块踩坑记录]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/146316889</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/146316889</guid><author>ganwu5482</author><pubDate>Mon, 17 Mar 2025 16:44:35 +0800</pubDate><description><![CDATA[如果买过这个模块的小伙伴就会知道，TCS34725厂家给的颜色识别例程写的就是一坨，一点都不准。这里，我来给大家提供一些思路。]]></description><category></category></item><item><title><![CDATA[基于Zigbee的Z-STACK组网]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/146259409</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/146259409</guid><author>ganwu5482</author><pubDate>Fri, 14 Mar 2025 16:39:58 +0800</pubDate><description><![CDATA[通过手机、平板等智能终端安装相应的控制应用程序，与 Zigbee 协调器连接，在应用程序中对已接入的设备进行命名、分组等配置操作，实现对设备的远程控制和自动化场景设置。该设备向父节点发送加入请求，父节点将请求转发给协调器（若父节点不是协调器），协调器批准后，由父节点为其分配网络地址，从而实现设备加入网络。连接网关：使用 Zigbee 协调器创建网络后，将协调器连接到家庭网络中的路由器或网关，使 Zigbee 网络与外部网络（如互联网）进行通信，以便实现远程控制等功能。初始化一个网络或者加入一个网络。]]></description><category></category></item><item><title><![CDATA[Darknet YOLOv3模型训练和推理]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/146222968</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/146222968</guid><author>ganwu5482</author><pubDate>Thu, 13 Mar 2025 11:11:57 +0800</pubDate><description><![CDATA[根据前两章的介绍，我们已经搭建好了需要的环境，并准备好了用来训练的数据集，接着我们将进行模型的训练。]]></description><category></category></item><item><title><![CDATA[关于iar烧录和串口调试时的报错及解决办法部分]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/146223844</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/146223844</guid><author>ganwu5482</author><pubDate>Thu, 13 Mar 2025 10:28:42 +0800</pubDate><description><![CDATA[像这种无法找到该文件的，一般是我们设置的路径有问题，应该把文件放在英文路径下即可解决，但如果是初始化通信失败，请检查连接和硬件，就应该查看一下仿真器连接是否正确，第二步可以试下仿真器的复位键，第三，把程序烧录到第一块板子，调试完记得按红色的❌结束调试，再打开第二块板子烧录，]]></description><category></category></item><item><title><![CDATA[针对rk3588环境初始化失败问题的一些解决]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/146206523</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/146206523</guid><author>ganwu5482</author><pubDate>Wed, 12 Mar 2025 15:52:09 +0800</pubDate><description><![CDATA[参考文章：https://github.com/rockchip-linux/rknn-toolkit2/issues/242他这里是RK3588S开发板rknnlite-1.4升级到1.5.2时遇到的问题，我出现这个报错信息是RK3588开发板rknnlite-1.6.0和rknnlite-2.0.0时出现的问题init_runtime()时加了target='rk3588’都会报上述错误，直接删掉就好了，至于为什么会这样我也不知道哈，如果又大佬知道还请赐教~ ~]]></description><category></category></item><item><title><![CDATA[IAR的安装及注册]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/146159891</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/146159891</guid><author>ganwu5482</author><pubDate>Tue, 11 Mar 2025 08:57:57 +0800</pubDate><description><![CDATA[5，点击 l accept the terms of the license agreement继续next。7，然后next，按照上边把Licenese number 和 Licenese Key复制粘贴上去，2，鼠标右键以管理员身份打开第一个可执行文件EW8051-EV-Web-8101.exe。6,来到这一步，打开 IAR kegen Parta.exe,name 自己随便去一个。11,点击 install。4，然后一直点击next。]]></description><category></category></item><item><title><![CDATA[Darknet YOLOv3数据及配置文件准备]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/146089205</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/146089205</guid><author>ganwu5482</author><pubDate>Fri, 07 Mar 2025 13:59:58 +0800</pubDate><description><![CDATA[上一篇我们已经安装好了环境，下面我们将介绍模型如何使用如图：train_images和val_images 存放的是我们需要训练图片的文件夹；trainImageId.txt和valImageId.txt为遍历train_images和val_images文件夹下所有图片名，形如：trainImagePath.txt和valImagePath.txt为遍历图片路径文件，形如：可以使用以下脚本生成：根据需要修改下面文件夹的路径。]]></description><category></category></item><item><title><![CDATA[Darknet YOLOv3模型环境构建及问题解决]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/146088175</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/146088175</guid><author>ganwu5482</author><pubDate>Fri, 07 Mar 2025 10:31:03 +0800</pubDate><description><![CDATA[先下载编译darknet工程，具体见官网 https://pjreddie.com/darknet/yolo/，可以在github上下载压缩包，这里还是推荐使用git下载进入darknet文件夹后，修改Makefile文件，根据你的电脑配置修改；如果是用的GPU训练的，就需要将GPU和CUDNN的值改为1，如果是用CPU训练的则不需要更改，修改完后运行make。]]></description><category></category></item><item><title><![CDATA[基于opencv的hsv色块检测]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/146079387</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/146079387</guid><author>ganwu5482</author><pubDate>Thu, 06 Mar 2025 20:30:16 +0800</pubDate><description><![CDATA[这段代码主要用来调试hsv至指定范围，对特定色块进行检测，是图像检测中非常简单的方法。自动驾驶中识别交通标志或车道线，机器人追踪特定颜色的物体、医学影像中分割病变组。织，卫星图像中提取植被或水体、检测产品颜色是否符合标准，或识别缺陷区域等等。]]></description><category></category></item><item><title><![CDATA[基于RKNN的嵌入式深度学习开发（2）]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/145966657</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/145966657</guid><author>ganwu5482</author><pubDate>Sun, 02 Mar 2025 18:00:19 +0800</pubDate><description><![CDATA[上一个章节我们介绍的RKNN模型的模型转换和模型的推理，这一章节我们将介绍模型的量化和评估部分。]]></description><category></category></item><item><title><![CDATA[基于RKNN的嵌入式深度学习开发（1）]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/145948086</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/145948086</guid><author>ganwu5482</author><pubDate>Sat, 01 Mar 2025 17:58:35 +0800</pubDate><description><![CDATA[4. 构建RKNN模型，运行在PC上，通过模拟器运行模型，需要调用 build 接口构建RKNN模型，然后可以导出RKNN模型或者初始化运行环境进行推理等操作；2. 导入非RKNN模型，如果是运行在PC上，通过模拟器运行模型时使用load_caffe、load_tensorflow 等接口导入对应的非RKNN模型。3. 导入非RKNN模型，运行在PC上，通过模拟器运行模型时使用 load_caffe、load_tensorflow 等接口导入对应的非RKNN模型；5. 导出RKNN模型。]]></description><category></category></item><item><title><![CDATA[WSL安装以及和VM的冲突解决]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/145930929</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/145930929</guid><author>ganwu5482</author><pubDate>Fri, 28 Feb 2025 16:13:32 +0800</pubDate><description><![CDATA[如果你安装了 VMware，又恰好版本低于16.0，VM和WSL就会冲突，让你VM直接报废，下面我将介绍如何关闭WSL的虚拟机服务。执行完上述操作后，直接重启，VM就又可以用了。此时再用wsl -l -v 则无法查到任何虚拟机状态。默认安装在C盘中，如果C盘内存不够，可以移动到其他盘。解决２：关闭WSL相关的虚拟机服务。1. 控制面板->程序和功能->启用或关闭win。2. 控制面板->程序和功能->启用或关闭win。3. 控制面板->程序和功能->启用或关闭win。虚拟机平台 的勾选。]]></description><category></category></item><item><title><![CDATA[【Python】]]></title><link>https://blog.youkuaiyun.com/ganwu5482/article/details/140383233</link><guid>https://blog.youkuaiyun.com/ganwu5482/article/details/140383233</guid><author>ganwu5482</author><pubDate>Fri, 12 Jul 2024 16:50:38 +0800</pubDate><description><![CDATA[Pyserial是一个用于串口通信的Python库。它允许Python程序与串口设备进行通信，如传感器、控制器、嵌入式系统等。Pyserial提供了一些函数和类来实现串口通信的各种操作，如打开和关闭串口、读取和写入数据、设置串口的参数等。需要注意的是，在进行串口操作时需要确保串口设备已经连接到计算机上，并且串口的参数与程序中设置的参数一致。获取缓冲区字符数量——count = ser.inwaiting()清空缓冲区——ser.flushInput()]]></description><category></category></item></channel></rss>