- 博客(32)
- 资源 (4)
- 收藏
- 关注
原创 FreeRTOS:资源管理
死锁场景A任务已经获取了资源a,B任务已经获取了资源b,且这时A任务正在等待B任务释放资源b,而B任务正在等待A任务释放资源a;资源冲突场景A任务正在写某个缓冲区(buffer),还没写完发生了任务切换,切换到B任务;B任务执行该缓冲区的读操作,读完后任务切换到A任务;这样B任务读取的数据一部分是新的一部分是旧的,这可能会引起B任务执行异常。解决资源冲突的常用方法就是原子操作,即任意任务从获取资源到释放资源是一个完整的操作,过程中不被中断;原子操作的实现方案一般有关调度、关中断;...
2022-11-25 15:49:17 590
原创 一种高效、安全的嵌入式通信协议
在嵌入式开发中经常遇到多机通信,本人发现不少人设计的通信协议要么很复杂、要么存在诸多漏洞,特意花时间将本人的意见拿出来供大家参考。
2022-09-18 18:34:17 422
原创 嵌入式多任务下资源管理问题的讨论
本文讨论多任务下不同资源管理方案的优劣,各种方案都有其自身的应用场景,所以方案本身没有好与不好之分,只有合适与不合适之分。
2022-08-29 00:27:47 1722
原创 一种修改MCU主频的方法:类观察者模式
在单片机驱动开发中,有时会遇到通过降主频来降低系统功耗,降主频可能会带来其它外设不能正常工作,这时候就需要在降主频完成后重新初始化相关其它外设;如果使用设计模式,这种情形使用观察者模式可能比较合适,但这样会让驱动显得很臃肿,且可理解性较差……......
2022-08-28 15:51:15 847
原创 嵌入式开发中volatile的应用
volatile是嵌入式开发中比较重要的关键字,然而网上的相关资料五花八门,基本都没有将其讲全,本人就花点时间,权当为社会做做贡献!
2022-08-27 18:34:44 2021
原创 FreeRTOS:任务及任务管理
根据个人经验描述任务管理中常见的几个问题,希望能够帮助各位看官!1、为什么不推荐使用systick作为HAL时钟源?/2、OS的tick设置多少合适?/3、configMAX_PRIORITIES设置多少合适?4、为什么必须要有idle任务?/5、为什么任务退出前必须显示将该任务删除?/6、如何判断任务栈空间分配是否合适?...
2022-07-19 19:44:54 2407
原创 FreeRTOS:内存管理
在FreeRTOS中有两种内存使用方法:一种是使用静态方法创建任务的栈空间、任务控制块等,该方法也就是在我们编程时候直接定义/申请一个数组或结构体内存空间;另一种是使用动态方法创建,该方法是在代码运行时候才申请数组或结构体内存空间(不同的内存管理方法,内存空间申请方法也不一样)。这两种方式我们分别称之为:静态内存管理、动态内存管理;静态内存方式从V9.0.0版本才开始引入,两种方案各有利弊,对于大多数普通用户来说,两者没有太多区别。...
2022-07-15 21:20:17 2836
原创 FreeRTOS:CMSIS_V1与CMSIS_V2区别
使用STM32CubeMx生成代码时,会让我们选用CMSIS_V1还是CMSIS_V2,这两者有什么区别?
2022-07-15 21:06:15 10306 4
原创 Qt/C++实现函数指针的使用
对于if-else语句或者switch-case语句非常累赘,且每个分支结构基本一致情况下,可以使用列表方式代替if-else或者switch-case;对于C语言这方面很容易实现,但是对于C++的类成员来说需要特殊的要求。
2022-05-12 22:26:11 998
原创 win10+Qt5.15.2实现低功耗蓝牙控制
1、前述Qt支持低功耗蓝牙仅限于Qt5.14以上版本,不支持win7;需要在工程项目.pro文件中添加:QT += bluetooth详细介绍:https://doc.qt.io/qt-5/qtbluetooth-index.html参考资料:https://doc.qt.io/qt-5/qtbluetooth-le-overview.html本文源码:Qt5.15.2实现低功耗蓝牙调试助手源码-QT文档类资源-CSDN下载低功耗蓝牙控制主要有三部分:1、代理部
2022-04-18 00:35:13 3864 9
原创 续航时间估算方法
在电池容量已知情况下计算产品续航有两种方法:容量方案、能量方案;能量方案一般在项目前期,板卡系统还没有跑起来时候使用的一种估算方法,该方法需要知道电池总能量(mWh);容量方案一般在项目中后期,板卡系统已经跑起来了,可以测试产品运行过程中电池端电流时候的一种估算方法,该方法需要知道电池总容量(mAh);1、能量方案:不知道电池端电流情况该情况下需要根据各个器件电流、电压情况计算其功率,进而可计算所有器件的功率累计值,即累计功率;使用电池总能量除以累计功率即可估算出续航时间;该方法没有考虑各个
2022-03-20 23:46:14 2217
原创 win10下pyqt5低功耗蓝牙系列二:基本控制流程及代码
基本界面相关资料:Bluetooth Low Energy Overview | Qt Bluetooth 5.15.8Qt Bluetooth 5.15.8基本控制流程BLE设备发现流程包括:1、发现设备;2、连接设备;3、发现服务;4、发现特性;5、读写操作;6、断开连接;发现设备流程该流程代码如下: def start_scan(self): try: self.discovery_
2022-03-17 14:44:05 1534 5
原创 win10下pyqt5低功耗蓝牙系列一:开发环境搭建
1、序言之前在网上搜索关于python实现低功耗蓝牙(BLE)的案例,基本都是让安装pybluez等之类的工具,实测发现基本行不通,具体原因也不记得了,折腾了将近一个星期时间。这两天看Qt的QtBluetooth类可实现该功能:Qt Bluetooth 5.15.8,大致功能如下:于是就试着用python实现一个BLE调试助手:开发平台:win10工具:python3.10.2+pycharm+pyqt5.15.62、软件安装python安装下载路径:Python Relea
2022-03-16 23:35:31 2848 1
原创 复杂系统的研究
大概1924年,德布罗意提出“物质波”的假说,认为一切物质都具有波粒二象性;在软件领域有人把他引申为:产品与过程具有“波粒二象性”。个人把他当做理解系统复杂性的基础:系统中的每一个个体既有空间上的独立性,同时也具有时间上的连续性;事物的复杂性,可以复杂到类似“蝴蝶效应”的混沌世界,也可以简单到司空见惯的细枝末节;所以复杂性既有变的一面,也有不变的一面:不变是基础,变是本质。上面这段话是我在研究系统架构和软件工程过程中领悟出来的,然而复杂的世界并非这么三言两语可以说得清楚的...
2021-12-09 21:42:50 376
原创 OpenCV配置过程中ffmpeg、ippicv下载错误的处理办法
1、ffmpeg错误处理办法进入网址:https://github.com/opencv/opencv_3rdparty/界面如下:点击readme,输入ffmpeg,跟选择对应的版本:(在OpenCV源码路径C:\opencv\opencv\sources\3rdparty\ffmpeg下的ffmpeg.cmake文件可以看到该OpenCV版本需要的ffmpeg版本,一般在该文件的第一行)进入选择版本后界面如下:里面有个ffmpeg文件夹,点击绿色Code按钮即可下载.
2021-08-11 00:19:47 1722
原创 win10下基于Qt5.15自带mingw的OpenCV4.4.0编译、安装
1、安装Qt;下载地址:https://download.qt.io/official_releases/online_installers/qt-unified-windows-x86-4.1.1-online.exeQt5.15以后只能在线安装。安装完后设置环境变量2、安装cmake下载地址:https://cmake.org/download/我下载的是:cmake-3.21.1-windows-x86_64.zip3、下载OpenCV源码下载地址:..
2021-08-10 23:46:38 1155 1
Qt5.15.2实现低功耗蓝牙调试助手源码
2022-04-18
基于win10的pyqt5实现BLE调试助手源码
2022-03-17
OpenCV-ffmpeg-ippicv下载文件
2021-08-11
opencv4.4.0+Qt5.15.2-mingw810_64.rar
2021-08-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人