- 博客(42)
- 资源 (9)
- 收藏
- 关注
原创 【设计模式】观察者模式
高层模块不应依赖低层模块:两者都应依赖于抽象(接口或抽象类)。抽象不应依赖细节:抽象层定义规范,具体实现(细节)应依赖抽象核心目标:通过面向接口编程,减少模块间的直接耦合,使系统更适应变化。
2025-04-02 14:27:01
584
原创 【学习笔记】pyqt5+python 应用开发-simplefoc
每一个ui一个模块,好处是实例化非常方便,一次设计,随时使用;由整体的app模块来分别加载各个子模块前提 是他们有类似的事件响应;都可以映射到同一个事件响应中;数据定义:combobox 名称-数据类型-寄存器列表【l利用sns 1.定义下拉选框的内容(第一列),2.同时定义与选择内容对应的数据,这些数据操作一致,意味着当选择对应的下拉框时,用同一个种方法处理数据,3.配合映射表(“comboBox__sns”,c_sns,(0x98,4,4),(0x96,3,3)),还能处理跟个多的场景;】数据类型
2024-11-12 08:43:06
340
原创 【学习笔记】步进电机
步进电机的原理步进电机的分类步进电机的驱动步进电机的控制防止失步-加速和减速换向的死区保护-其他是不是都需要死区保护?参考资料《R01AN2008CC0110_R7F0C807.pdf》
2024-11-11 16:15:38
211
原创 【学习笔记】固定长度字符串数组定义
这种定义方式称为不完全类型【在后续初始化或分配内存时指定的】"a 1 2 ","g 3 4 "数组的每个元素是一个包含11个字符的字符数组,但不知道整个二维数组有多少行。(char (*)[11]) 表示 指向数组的指针;// 定义一个二维字符数组并初始化"a 1 2 ","g 3 4 "// list 是一个 指向二维字符数组的指针// 它本身不是指针,但它可以被视为一个指向其第一行(char[11])的指针。
2024-08-21 14:13:36
229
原创 【学习笔记】rt-thread
一般情况下,没有必要使用PSP,除非是有os存在时,MSP用于os内核的sp,而PSP用于thread级app的sp,这两个sp需严格分开。R13在任何时刻只能是其中一个,默认情况为MSP,可以通过控制寄存器(CONTORL)来改变。只有一位,屏蔽所有的可屏蔽中断。
2024-04-12 14:12:05
835
原创 事件驱动 VS 时间驱动
流程和状态机都是用于描述和控制复杂系统的结构化方法,它们在概念上存在一些共性,如都涉及一系列步骤或状态的转换,以及条件或事件触发的决策逻辑。然而,它们在设计哲学、适用场景、结构特点以及对系统行为的建模方式上存在本质的区别。
2024-04-07 15:44:11
1146
原创 光电开关-NPN-PNP
NPN:表示共正电压,输出负电压==【只能输出低电压或者悬空 常开常闭是指 输出有没有跟“地”接通】;NPN NC:表示常态下黑色线是输出负电压信号,检测到物体时,断开输出信号;PNP NC:表示常态下黑色线是输出正电压信号,检测到物体时,断开输出信号。NPN NO:表示常态下是常开的,检测到物体时黑色线输出一个负电压信号;PNP NO:表示常态下时常开的,检测到物体时黑色线输出一个正电压信号;有信号 == “检测到物体/有物体遮挡”PNP:表示共负电压,输出正电压;
2023-09-24 11:04:54
9168
原创 [神马]VBA查找匹配项
为了一顿小龙虾,不惜花了一下午时间。Sub 小龙虾()Dim sheetCnt As Integer, zongbiaorow As Integer, biaorow As Integer, i As Integer, j As Integer, k As Integer, p As IntegerDim s As String, target As StringDim ww As Rangesheetname = ActiveWindow.ActiveSheet.Name '当前表格名
2022-04-21 08:12:41
1757
原创 [DIY]小日子过得不错的日本松下吹风机
型号EH-NA27型号EH-NA27功率1200W电压100V频率50-60Hz拆机图片电路原理图电气件阻值电机电阻11欧细发热丝电阻78欧主发热丝电阻9.3欧温控器电阻1.3欧四个档位低温档因为只有细发热丝起作用,而且是半波整流 功率约为 100V*100V/90欧/2 = 55w恒温档细发热丝和主发热丝都在工作,主发热丝功率(半波整流) 100*100/11/2 = 454w加上细发热丝 总功率为 509w高温
2021-10-22 13:20:16
2021
原创 【mcu】Serial Studio 串口数据可视化
参考链接如何编译如何使用还能够实现文件记录;还支持中文界面;json的例子example{ "t":"%1", "g":[ { "t":"Mission Status", "d":[ { "t":"Runtime", "v":"%2", "u":"ms" }, {
2021-05-11 15:13:08
885
原创 [github]有限状态机
githubstateMachine结构内容#mermaid-svg-UVOcnvdkFVTo0gM1 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-UVOcnvdkFVTo0gM1 .label text{fill:#333}#mermaid-svg-UVOcnvdkFVTo0gM1 .node r
2021-05-10 13:14:20
1024
原创 [啥玩意]投资有风险
做多靠后期股价上涨赚钱,当前直接买入就完事;做空靠后期股价下跌赚钱:1.机构/个人从券商借XX股的股票,价值为100M,前提是需要交保证金20M;2.机构/个人直接卖掉套现100M;3.后期股价下跌时买入,50M;将股票还给券商,券商退回保证金到机构/个人;风险被做空的股票如果上涨,当当前股价 比较接近 原价100M+保证金20M的时候,此时机构/个人还可以通过追加保证金的方式继续运行,一旦当前股价>(原交易价+保证金),机构/个人已经无力偿还(连短裤都一起亏了),券商通过强制平仓的方
2021-04-01 07:46:15
196
原创 [QT]github学习QT--QT--Serial-Port-Assistant
一个串口收发的小程序功能就是串口数据的收发;设置标题Serial::setWindowTitle();串口对象使用比较基础的串口使用过程;查找可用串口端口通过QSerialPortInfo 类实现当前串口信息的显示,主要包括串口号和串口名称;foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) { qDebug() << "Name : " <<
2021-03-30 20:13:10
622
原创 [c/c++]vscode下配置cmake环境
使用cmake的目的因为需要使用makefile来管理多个文件,makefile针对不同的平台编写方式有不一样,则需要通过cmake工具自动生成对应平台的makefile文件。前提需要CmakeLists.txt文件;通过搭建cmake的环境,对tasks.json和的左右有了一定的认识。launch.json用来配置如何启动调试程序,程序的位置,调试的工具,所传参数等。 "configurations": [ { "name": "gcc.exe
2021-03-24 08:37:42
1027
原创 [github]multi timer学习记录
记录学习github上优秀轮子:采用单向链表来实现多个定时器的调用、停用、定时处理函数。适合裸奔的单片机。思路初始化定时器定时器的结构体typedef struct Timer { uint32_t timeout; //第一次超时时间 uint32_t repeat; //重复时间 void (*timeout_cb)(void);//定时处理函数 struct Timer* next;//单链表}Timer;启动/停止定时器启动的过程就是将该定时器添加到
2021-02-07 13:06:29
276
原创 [STM32]定时器
定时器常用函数功能初始化使能回调函数基本定时HAL_TIM_Base_InitHAL_TIM_Base_MspInitHAL_TIM_Base_Start还有_IT 中断模式 _DMA模式HAL_TIM_PeriodElapsedCallback输入捕捉HAL_TIM_IC_InitHAL_TIM_IC_MspInitHAL_TIM_IC_Start还有_IT 中断模式 _DMA模式HAL_TIM_IC_CaptureCallback其他功能类似;..
2021-02-05 13:50:07
309
原创 [模块]EC11旋转编码器
功能说明编码器有什么用配合UI设计点击选择 长按退出 正反转加减种类编号引脚说明硬件设计滤波消抖软件设计编码器读取参考资料
2021-02-04 17:12:36
6258
原创 [硬件]电路-TTL
三极管作用 :电流放大和开关作用 电流控制型器件;有PNP和NPN两种类型区分NPN和PNP顺着PN节方向去读(箭头方向就是PN节方向),箭头的两端 是基级(b)和发射级(e),剩下的即为集电极(c)工作状态例子Ib输入电流(好比阀门),决定了Ic电流的最大值IcMax =Ic*B(水管);开关状态 :当给定Ib,流过Ic可能小于 IcMax(IcMax = Ib *β),一旦小于这个IcMax(水量不够,电路中国没有那么多的电流,取决于e c 上的电路结构 Ic < Ib *
2021-02-03 22:29:24
449
原创 HC-05模块配对
HC-05模块配对基本知识工作模式自动连接命令响应(AT模式)模式选择直接上电按住模块按键后上电LED灯快闪(未连接)慢闪两次(已连接)慢闪PS:进入AT模式[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ea9ZQqgE-1606104548432)(\img\1606104460067.png)]设置两个蓝牙配对设备:USB-TTL模块+H-05模块+杜邦线[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接
2020-11-23 12:11:43
334
原创 VSCODE札记
Vscode log未完待续pythonC/C++运行环境搭建参考:https://www.cnblogs.com/taming/p/8560253.html1.安装mingw-w64,添加bin路径到环境变量Path;2.检验环境:cmd中gcc-v3.在vscode中安装“code runner"插件;4.创建.vscode文件夹,添加 launch.json 以及 tasks.jsonlaunch.json{ // Use IntelliSense to learn ab
2020-11-18 21:17:41
179
原创 [电路]提高DAC分辨率并控制范围
在电路设计的中可能会遇到DAC分辨率不够的情况,同时控制的范围需要控制,下面这个电路是个不错的选择。下图中Vin是DAC的输出,范围是0~Vcc 分辨率 Vcc/256,Vout是控制电路的输入;有如下关系:(Vcc-Vout)/R0+(Vin-Vout)/R1=Vout/R0Vout= (nVcc+Vin)/(2n+1)当Vin在范围0~Vcc变化时,Vout变化范围为n/(2n+1)*Vcc ~(n+1)Vcc/(2n+1)*Vcc则控制分辨率提高到 [1/(2n+1)*Vcc] /256
2020-06-29 18:32:15
2222
原创 [Linux]内核list.h
首先list.h是内核的链表,用户态想要使用的话需要从内核中取出使用;链表的使用推荐参考博文:[link](https://blog.youkuaiyun.com/wanshilun/article/details/79747710)在上述博文中有图片解释,如果把该链表的图画成环状结构,便于理解;见图。图中解释了两种add方法的插入点、数据先后顺序问题。...
2020-05-13 17:34:30
207
原创 [单片机]Bootloader+App设计
主要记录Bootloader设计过程中的一些思路,经供参考(以恩智浦S12系列为例)。ROM地址划分首先是存储地址的划分,主要是ROM(Flash)地址划分,通过PRM文件实现Flash的分区。主要划分两个部分,Flash靠后的放Bootloader,前面放App。需要注意的是分区地址信息需要保持一致。中断向量表按照S12的默认配置,中断向量表和复位向量是安排在Flash的最后,作为boo...
2020-04-24 21:39:44
1090
1
原创 [CANopen]理清PDO映射
CANopen中发送/接收的数据称之为过程数据(PDO)。这里以发送为例,理清其中的映射关系。配置发送使用TPDOx,可以使用TPDOx如下:项目通讯参数-字典Index映射参数-字典IndexTPDO118001A00TPDO218011A01TPDO318021A02TPDO418031A03使用首先就得配置TPDOx,其中通...
2020-04-01 22:35:53
6850
原创 [CANopen]理清CAN ID
参考:https://blog.youkuaiyun.com/plc_jianghao/article/details/77824241CANopen数据帧(标准帧11bitID)的结构如下图:其中仲裁段12bit,在CANopen作为COB-ID(通讯对象id)如图所示:其中:Function Code;对应的是什么类型的对象Node ID:节点ID(7bit因此总线数量最多128个)COB-...
2020-03-31 20:53:09
1462
ASCII码一栏表
2018-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人