<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[小刚专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/winafa</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; winafa]]></copyright><item><title><![CDATA[关于wpa_supplicant.conf一些配置说明]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/158741959</link><guid>https://blog.youkuaiyun.com/winafa/article/details/158741959</guid><author>winafa</author><pubDate>Fri, 06 Mar 2026 19:46:45 +0800</pubDate><description><![CDATA[摘要：针对WiFi设备A连接多个热点设备B时，关闭热点后仍长时间显示的问题，分析发现是wpa_supplicant缓存机制导致。可通过修改配置文件调整两个关键参数：bss_expiration_age（缓存时间，默认180秒）和bss_expiration_scan_count（消失扫描次数，默认2次）。建议在wpa_supplicant.conf中添加相关配置缩短缓存时间，或使用ignore_old_scan_res=1参数强制每次扫描获取最新结果。不同版本参数可能不同，可通过wpa_cli工具查看和修改]]></description><category></category></item><item><title><![CDATA[Linux启动配置]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/134863598</link><guid>https://blog.youkuaiyun.com/winafa/article/details/134863598</guid><author>winafa</author><pubDate>Fri, 12 Apr 2024 18:08:11 +0800</pubDate><description><![CDATA[很多厂家都是通过修改此文件进行配置，一般包括rcS一个脚本文件，脚本里面去加载不同脚本（通过文件名来过滤、设置启动顺序），还包括关闭退出的一些处理。BIOS/UEFI设置：在计算机启动时，进入BIOS或UEFI设置界面，确保启动顺序中的第一个选项是硬盘或SSD，以便从存储设备启动Linux。目录下，可以通过修改这些文件来配置启动时要运行的服务、启动优先级等。内核参数配置：Linux系统的内核可以通过启动参数进行配置，例如设置内存大小、网卡驱动、磁盘调度算法等。参数来配置内核启动参数。]]></description><category></category></item><item><title><![CDATA[STM32定时器使用与计算]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/136236553</link><guid>https://blog.youkuaiyun.com/winafa/article/details/136236553</guid><author>winafa</author><pubDate>Thu, 22 Feb 2024 16:38:15 +0800</pubDate><description><![CDATA[分频 Prescaler：20   含义：184MHz / (20+1) = 8MHz， 也就是说该定时器以每秒8M次脉冲触发，计数时间单位 = 1/8M = 0.125us。以TIM11为例，可以看到是挂载在APB2下面，由前面的Clock Configuration 的配置，可以知道TIM11的输入频率为184MHz，请记住此值！prescaler 是用来分频来自APBx的时钟频率，然后提供给定时器，作为定时器的心跳。另外，我的MCU有那么多的TIM可以用，我怎么知道该TIMx挂在哪个APB下面呢？]]></description><category></category></item><item><title><![CDATA[STM32 ADC采样调试笔记]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/135408391</link><guid>https://blog.youkuaiyun.com/winafa/article/details/135408391</guid><author>winafa</author><pubDate>Sat, 06 Jan 2024 12:18:56 +0800</pubDate><description><![CDATA[最近在搞STM32L051系列一个小MCU，要用这个去采集两路ADC作为输入。期间也碰到过一些问题，顺便记录下。

ADC采集原理不说了，主要采集电压，用数字进行细分，这样就可以知道输入电压多少了，网上也有很多相关文章。

我这边主要以下几个问题或知识点
1.采集模块添加
2.采集前初始化代码添加
3.多通道采集顺序混乱问题
]]></description><category></category></item><item><title><![CDATA[直流电机驱动开发笔记]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/135286954</link><guid>https://blog.youkuaiyun.com/winafa/article/details/135286954</guid><author>winafa</author><pubDate>Fri, 29 Dec 2023 15:47:17 +0800</pubDate><description><![CDATA[接触有两种方式：一种是驱动芯片，这种一般封装好，都很小或相对很小，这种内部集成了H桥，可支持步进电机也可以直流电机，例如L298N之类的，但他们一般驱动能力有限，小电机问题不大，稍微大一点比如100w以上的电机，就会有问题。MARK知识点：电机在启动瞬间会有比较大的电流，这个大电流可能会导致芯片触发限流，如果是仅仅限流到还好（起来过程稍微慢点），如果是反向限流就不行了，这样电机可能永远起不来。还有一种是用MOS搭建的，有简单的，有复杂的，相对来说，可驱动比较大一点电机，一般100w以上没有问题。]]></description><category></category></item><item><title><![CDATA[电机驱动开发]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/134980291</link><guid>https://blog.youkuaiyun.com/winafa/article/details/134980291</guid><author>winafa</author><pubDate>Wed, 13 Dec 2023 20:31:22 +0800</pubDate><description><![CDATA[总的来说，对软件而言，关心的有这几个：VREF1~VREF4、OUTx、Ixx、PHASE1~PHASE4，这几个（后面两组是用来Control input控制输入的，也就是开关）。高逻辑电平设置的是半步进模式，低逻辑电平设置的是全步进模式。高逻辑电平设置的是慢衰变模式，低逻辑电平设置的是快衰变模式。●EN 逻辑输入：它是芯片使能输入。很多情况下，电机不仅仅是转与不转的关系，还应该有其他要求，因此需要程序或芯片来实现驱动功能。就好比流程图一样，左边是我们要输入的（通过MCU），右边是控制输出的。]]></description><category></category></item><item><title><![CDATA[STM32F407 串口使用DMA方式通信]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/133041312</link><guid>https://blog.youkuaiyun.com/winafa/article/details/133041312</guid><author>winafa</author><pubDate>Tue, 19 Sep 2023 19:35:29 +0800</pubDate><description><![CDATA[DMA的原理，就是利用寄存器方式进行读写，这样的好处就是相对于中断触发（往往一个字节字节的就中断一次），CPU中断次数大大降少，提高了效率，但也影响了实时性。总体来说，对于一般的应用，瑕不掩瑜，值得使用。本文是基于串口1的，实际上串口1也是printf重定向接口，貌似没有什么冲突。原则上：1. 串口接收采用DMA+空闲中断的方式2. 串口发送就是直接发送方式这样的方式，符合一般项目需求。也分两部分：STM32CubeMx端配置+代码的处理。]]></description><category></category></item><item><title><![CDATA[SFUD、FlashDB测试demo]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/132914758</link><guid>https://blog.youkuaiyun.com/winafa/article/details/132914758</guid><author>winafa</author><pubDate>Sat, 16 Sep 2023 10:13:25 +0800</pubDate><description><![CDATA[搭建好SFUD、FLASHDB之后，参考下本文的业务代码
往往我们都不知道业务代码怎么写
其实还是缺少一个Adapter层，至于如何编写DBAdapter，相信有很多策略，实际落地还需要大量业务代码支撑，否则，算不了掌握DB]]></description><category></category></item><item><title><![CDATA[移植FlashDB、SFUD到STM32f407]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/132839123</link><guid>https://blog.youkuaiyun.com/winafa/article/details/132839123</guid><author>winafa</author><pubDate>Tue, 12 Sep 2023 20:26:54 +0800</pubDate><description><![CDATA[FlashDB是个好东西，但第一次接触还是避免不了走弯路，本人也是走了一会的弯路。
由于芯片本身不同，这里芯片不仅仅是FLASH芯片，还包括MCU，因此要实现自己的代码，需要做相应的改进（调整）。本文是基于STM32F407芯片，记录哪些地方需要改进的]]></description><category></category></item><item><title><![CDATA[JTAG无法进入app的断点问题解决]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/132804231</link><guid>https://blog.youkuaiyun.com/winafa/article/details/132804231</guid><author>winafa</author><pubDate>Mon, 11 Sep 2023 12:23:02 +0800</pubDate><description><![CDATA[这个地址是bootloader的程序地址，用的是官方的bootloader，也没有改动啥，尝试不同工程代码都是这样的。通过JTAG口，可以对STM32进行在线调试，主要还是APP的调试，一般来说都是没有问题的。进入debug模式的时候，发现程序一直在bootloader里面运行！可以确定，App是正确写入到芯片的（断开JTAG是可以全速运行的）确认：响应的pack是安装的，最新也安装，也一样。main 函数里面断点 死活进不去。2. 理论上其他地方不要改动的。官方demo程序也是一样现象。]]></description><category></category></item><item><title><![CDATA[搭建STM32F407的SPI-Flash（基于STM32CubeMX）]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/132722824</link><guid>https://blog.youkuaiyun.com/winafa/article/details/132722824</guid><author>winafa</author><pubDate>Wed, 06 Sep 2023 20:41:20 +0800</pubDate><description><![CDATA[网上有不少驱动程序，可以去下载，大部分都可以用。此时，SPI1会默认关联三个IO口，好像是PA5~7，注意：默认跟原理图是不一致的！所有操作都是以上套路，知道就好，网上down个驱动，就可以操作了。这里还要手动再配一下，这个地方搞了好久，一开始没有注意到！网上有不少例子，都对，但对我来说碰到几个坑，避免以后再犯错，mark下。切记，要根据原理图来配置，千万不用使用默认。切记，要根据原理图来配置，千万不用使用默认。切记，要根据原理图来配置，千万不用使用默认。片选那边IO，到还好，在GPIO里面配置。]]></description><category></category></item><item><title><![CDATA[搭建STM32F407的Freertos系统（基于STM32CubeMX）]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/132635926</link><guid>https://blog.youkuaiyun.com/winafa/article/details/132635926</guid><author>winafa</author><pubDate>Sat, 02 Sep 2023 11:59:09 +0800</pubDate><description><![CDATA[本人长期开发Linux、Windows上应用软件，一直以来MCU开发有所接触，但较少（最近项目需要，小公司么，都得会，被逼的），好在有STM32CubeMX这样工具，貌似就是我想要的工具。本次demo目标立下：1. 搭建或移植FreeRTOS到STM32上，毕竟对于长期在Linux环境开发（虽然也号称嵌入式），什么中断、拉高拉低，一直来没有搞的明明白白。有个RTOS会方便很多2. printf重定向到串口1，可以实现打印输出3. 有个任务：定期拉高LED，然后反转，比较方便的看看程序运行情况。]]></description><category></category></item><item><title><![CDATA[Linux下如何修改CPU 电源工作模式]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/132327601</link><guid>https://blog.youkuaiyun.com/winafa/article/details/132327601</guid><author>winafa</author><pubDate>Wed, 16 Aug 2023 21:17:14 +0800</pubDate><description><![CDATA[在Linux下，如何防止CPU主动降频？如何设置电源-CPU工作模式？]]></description><category></category></item><item><title><![CDATA[中文输入法开发-关键代码]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/131925954</link><guid>https://blog.youkuaiyun.com/winafa/article/details/131925954</guid><author>winafa</author><pubDate>Wed, 26 Jul 2023 09:32:47 +0800</pubDate><description><![CDATA[中文输入法开发核心关键代码介绍

当然主要是交互这块，至于字典里如何查询也是一门行道]]></description><category></category></item><item><title><![CDATA[Qt图片编辑 - 在直线添加文字]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/131857790</link><guid>https://blog.youkuaiyun.com/winafa/article/details/131857790</guid><author>winafa</author><pubDate>Sat, 22 Jul 2023 10:40:15 +0800</pubDate><description><![CDATA[本文介绍了在Qt环境下，如何输出与直线跟随的文字，主要是跟随直线的角度处理]]></description><category></category></item><item><title><![CDATA[Qt画图框架，实现自己的画图框架]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/131631265</link><guid>https://blog.youkuaiyun.com/winafa/article/details/131631265</guid><author>winafa</author><pubDate>Mon, 10 Jul 2023 09:19:43 +0800</pubDate><description><![CDATA[这个用于判断是否落在本区域，本区域范围由你自己定义，这里是返回QRect，也就是也还比较麻烦，比如我们希望不是落在Item的方形区域，实际需要希望落在Item的边缘（线条附近），但边缘不可能是Rect的。这个比较麻烦的地方，是View的压缩比例改变之后，要如何展现的问题。什么view，canvas都好理解，只要控制好职责范围，就能很好编写这两个派生类的代码，对应用而言，关键是Item的实现，理论上Item才是五彩斑斓的世界。类型，这个仅仅是类型，根据不同类型处理是否可获得焦点、调整大小之类的。]]></description><category></category></item><item><title><![CDATA[判断当前鼠标位置是否落在直线上面]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/131508669</link><guid>https://blog.youkuaiyun.com/winafa/article/details/131508669</guid><author>winafa</author><pubDate>Mon, 03 Jul 2023 09:24:36 +0800</pubDate><description><![CDATA[1. 线段的两个点，start、end点，的坐标是已知的。如图，虚线所示，这个才是我们想要的边缘效果。那么，平行线的起点、终点的坐标都知道了。2. 那么，线段长度L也是已知的。红色框就是直线的边缘，很显然这不是我们想要的。]]></description><category></category></item><item><title><![CDATA[Qt画图功能实现]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/131508568</link><guid>https://blog.youkuaiyun.com/winafa/article/details/131508568</guid><author>winafa</author><pubDate>Mon, 03 Jul 2023 08:30:17 +0800</pubDate><description><![CDATA[Qt的屌性，一般仅提供非常通用一些功能，但也不错了，比如说最复杂的坐标转换，Qt本身就提供了，这样大大方便我们专注于自己的“元件”这个按字面意思是画布，也就是说我们背景，自成一套坐标体系，跟显示坐标、图形坐标不一样。Qt图形框架由三部分组成：（详细介绍，csdn已经很多了，这里仅仅罗列下）对，是框架，基本上连demo都算不上，所以存在很多工作需要完善。那么，我们自己搞一个这样的软件，是否可行？实际使用的时候，发现微信截图编辑功能挺好用的，功能也很清爽。包括传统的围绕画图软件，也是挺好用的。]]></description><category></category></item><item><title><![CDATA[Draw.io 高阶用法]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/131280147</link><guid>https://blog.youkuaiyun.com/winafa/article/details/131280147</guid><author>winafa</author><pubDate>Mon, 19 Jun 2023 08:37:04 +0800</pubDate><description><![CDATA[还有一种图形，本身就自带3D效果的组合图像，默认模板的确效果还可以，但随着大小拖动，效果就变样了，此时需要调整黄色 菱形。drawio是一款非常不错画流程图的软件，而且是免费的，但大部分图形以2D为主，有时候 却需要一些3D效果来增强方案。如果是长方形，也需要菱形替代，需要调整输入数字比例。如果是正方形效果，可用菱形替代，方法参考圆形。选择图形，然后黄色小菱形，拖动这个，可实现角度调整。需要变成这样，看起来更3D。调整图像角度，模型的角度（3D）]]></description><category></category></item><item><title><![CDATA[视频采集到录制 - MP4生成]]></title><link>https://blog.youkuaiyun.com/winafa/article/details/131040830</link><guid>https://blog.youkuaiyun.com/winafa/article/details/131040830</guid><author>winafa</author><pubDate>Mon, 05 Jun 2023 09:07:49 +0800</pubDate><description><![CDATA[如果不设置时间戳，那么回放的时候会很奇怪，视频一会快一会慢（当然相差不大，裸眼很难分辨出来），但回放时间很真实，例如明明录制了30分钟，但实际回放的时候，只有29分钟。因此要设置时间戳，时间戳的原点是创建通道的，后面每写入一帧数据，带入时间戳（相对第一个点的时间偏移）音频跟视频是分开两个通道的，因此，时间戳也是分开累计，同理，视频跟音频同步，也是基于时间戳！注意，他的参数含义，网上很多例子都是44.1k，因此，而参数里如果不细究，这个就会被忽略。采用的方案，是通过mp4v2的库，进行合并。]]></description><category></category></item></channel></rss>