- 博客(18)
- 收藏
- 关注

原创 台式振动按摩仪(超声、电机、电刺激、人机交互)
这是本人23年毕业后入职做的第一个商业性项目,代码写的和那个啥一样,硬件部分也并没有考虑成本,介于公司的产权,本人并不能将实际产品发出供大家参考。以它来作为我在优快云的初始篇,后续也会发一些其他的项目以及一些踩过的坑和小技巧,欢迎大家提出宝贵意见,评论区留言我也会答复。E端接IO口输出PWM,占空比越大时,等效输入电压越大,再通过三极管,此时电路形成小电流控大流。当电极短路时,相当副边负载0欧姆,初级线圈自身电感感抗也会变为0,此时所有的能量经续流二极管经限流电阻消耗掉,并不会对人体造成伤害。
2024-09-24 11:37:42
655
原创 蓝牙HID
蓝牙低功耗(BLE)版本的HID协议(如HOGP,HID over GATT Profile)专为低功耗设备设计,适用于需要长时间待机的设备(如无线键盘、遥控器)。从日常办公到游戏娱乐,其低功耗、高兼容性的特点使其成为智能设备生态中不可或缺的一环。它通过标准化的数据格式和通信流程,确保设备与主机(如手机、电脑)之间的兼容性和低延迟交互。通过蓝牙无线传输,取代USB或PS/2接口的键盘、鼠标等设备,提升使用灵活性。定义统一的数据格式(如按键码、坐标偏移量),确保不同厂商设备的兼容性。
2025-03-11 11:55:29
926
原创 CAN通信
Prescaler = 36MHz / (500k × (9 + 4 + 1)) = 36,000,000 / (500,000 × 14) ≈ 5.14 → 取Prescaler=5 实际波特率 = 36MHz / (5 × 14) = 514,285 bps(误差可接受)没有地址的信息,添加设备不改变原来总线的状态;错误检测&错误通知&错误恢复功能;通过掌握CAN通信的核心原理与实现方法,开发者能够构建高可靠、实时的分布式嵌入式系统,满足复杂环境下的通信需求。CAN,是ISO国际标准化的串行通信协议。
2025-03-10 17:03:36
765
原创 FreeRTOS
广泛应用于微控制器(MCU)领域。它提供多任务调度、资源管理、通信机制等核心功能,帮助开发者高效管理硬件资源并实现复杂逻辑。2.对于单核处理器,any one time只可能执行一个任务。3.调度器是能让任务切入切出的唯一实体。1.在FreeRTOS中,每一个执行。是一款专为嵌入式系统设计的。
2025-03-10 16:53:01
890
原创 GATT管理器初始化
是定义设备数据服务、特征值(Characteristics)及其交互逻辑的核心步骤。GATT基于客户端-服务器模型,通过属性表(Attribute Table)管理数据。以下是详细的实现解析。通过合理初始化GATT管理器,蓝牙设备能够高效管理数据服务,支持灵活的数据交互场景(如传感器数据上报、设备控制指令等),是构建复杂BLE应用的核心基础。以“自定义温度传感器服务”为例。
2025-03-10 16:30:18
438
原创 GAP管理器初始化
通过正确初始化GAP管理,蓝牙设备可以可靠地广播自身、建立连接并保障通信安全,是开发BLE应用的核心步骤。是设备建立蓝牙通信的基础,负责定义设备的可见性、连接模式和安全策略。GAP定义了蓝牙设备的。
2025-03-10 16:24:37
279
原创 单片机中的ROM、RAM、FLASH
在单片机中,通俗来说ROM是存储固化程序的(存放指令代码和一些固定数值(程序运行后不可改动的))、比如说C文件、h文件中所有的代码、const定义的常量数据、启动文件这些。然而我们的ADC值多少对应电池格多少的那个值是一个常量,我们不需要改变,但是我们要用它,所以存储在。RAM是程序运行中变量数据的随机存储(掉电后丢失,但是读写速度非常快),整个程序中、所有用到的变量、局部变量、堆栈段。我们要实现这电量采集的功能需要编写程序并烧录到单片机中,这时我们的程序就是下载到单片机的。
2025-02-22 11:15:55
522
原创 单按键切换、选定功能(仪表工程模式)
部分客户群体总想花小钱干大事,比如一个仪表要带系列的外部输入配置,进入工程模式来配置参数是一种有效且成本低廉的方式。最近在做的一款单按键锂电表的项目正好涉及相关内容,同时也弥补先前对于MCU外部按键。以上就是单按键的工程模式部分软件处理,长按开机进入工程选择界面,进入后再次长按配置当前工程参数,短按切换模式和参数值,欢迎各位提出优化建议。硬件连接比较简单,由于我是用IO口直推LCD屏,所以并没有使用驱动芯片,直连在MCU上,KEY1按键和SEG1口分时复用。没有实际项目例程的空缺。
2025-02-13 11:15:28
138
原创 裸机编程标志位思想
代码的严谨性是需要后期锻炼的,这个没有捷径,只能是依靠平时的工作调试和训练来不断强化,训练自己的逻辑完整性。包括我在内,不少人在初期都会面临一个问题:为什么单独的功能需求我可以实现,但是放在整个业务代码里,就不知道如何去统筹规划各个模块,使他完整不出错的运行起来。当我们学习完单片机的各种外设功能,知道它如何使用的时候,按照Datasheet里的配置步骤配置完成后,就可以按需写我们的裸机代码。这是我们业务代码所在的地方。这样即使是处理复杂的逻辑,也不会乱,只需要在具体的标志位状态里进行业务代码的编写。
2024-11-25 18:42:35
589
原创 8位MCU串口与电池包通讯
便于对底层的理解,我们只介绍8位的MCU自带的串口(UART)。相反,我们并不能确定对方什么时候给我们发送东西,假如我们一直在等,就会阻塞单片机的程序,所以接收我们是用中断接收。单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大的扩展了单片机的应用范围,增强了单片机系统的硬件实力。串口还是蛮好理解的,用户只需要配置好基础参数,他就可以按照你给的数据进行收发,话不多说,我们直接看实例。以上就是发送以及接收数据的处理了,这样就可以根据接收的报文进行SOC数值的提取了。
2024-11-12 17:48:26
2189
原创 C8624QP(LED点阵驱动芯片)应用介绍及软件驱动详解
如需输入N组(N<8)显示数据则发送数据依次是数据地址1、显示数据1、数据地址2、显示数据2、........、数据地址N,显示数据N,结束标志FF以及末位校验数据。最后一组校验码由前N组显示数据相加所得(保留低8位),如果校验失败,前面所有的显示数据都无效,SRAM会保持上一次的正确写入的显示数据。配置数据采用自动地址递增的方式读取,依次为配置数据1、2、3、4.最后一组校验码由前4组配置数据相加所得(保留低8位),如果校验失败,前面所写4组配置数据都无效,芯片会保存上一次正常写入的配置数据。
2024-10-19 16:13:05
2839
2
原创 DC-DC Buck和Boost电路
在单片机硬件中,通常会遇到需要转换直流电压的情况,今天分别给大家介绍一下BUCK和BOOST这两种常见的拓扑结构。
2024-10-18 14:38:12
904
原创 MOS管开关电路
电路原理很简单,当POWER_EN高电平时,Q5导通,MOS管G极低电平,GS压差达到MOS导通压差,BAT给后端输出。R23是防静电、提供固定偏置、和控制MOS开关时间的电阻。MOS管由于本身损耗非常小,经常会被用来作为开关电路。正好最近做的一款低功耗户外锂电池充放电手电筒应用到相关电路。
2024-10-15 09:26:50
610
原创 LED驱动灯珠驱动(ET6934、DP5125D)
接下来看下DP5125D这颗芯片,首先还是先介绍硬件,硬件是软件的基础,一定要确保自己的硬件电路是没有问题的再写软件,不然找问题会把自己找绝望的,哪怕是一颗小小的采样电阻。细心的小伙伴会发现这个芯片没有SEG口,只有GRID口,所以还需要有个推的大电流的SEG口,下面我用一个我做过的老年代步车的项目电路来帮助大家理解。然后我们就可以创建一个20字节长度的数组,管理这些灯珠的亮灭状态了,通常会列一个真值表方便写程序,因为6934是带锁存的,所以你要隔一段时间重新对他来赋值。双8字数码管内部电路图。
2024-10-12 14:52:57
2317
原创 单线数据传输
顾名思义,单线传输就是一根线来传输数据,所以肯定在同一时间只能是收或者发,这个处理起来并不困难,双方约定好协议,MCU接收到特定数据后便可做出相应处理,但是问题来了,如何通过1根线来发送不同的数据帧呢。在一些领域上,MCU资源会极其珍贵,像我们平时用的串口、I2C、SPI这些常用的外设会占用至少2个IO口,有需求就会有市场,所以单线传输方式被不少人采用。方法是有了,接下来就得考虑程序了。以上就是控制发送完整一帧数据的函数,接下来是接收函数,接收函数是我老大写的,逻辑相当完美,可以直接使用。
2024-09-24 19:08:03
461
原创 485、CAN通讯、LCD段码屏 电动车仪表测试盒
区别就在于串口是全双工的,可以同时收发,而485是半双工的,同一时间只能收或者发。项目需要实现的功能是:通过诸多外部按键,LCD屏会显示测试内容,例如速度 、档位、故障码,同时通过数据发送端口(485或CAN)发送相应数据到电动车仪表,实现测试功能。485通讯说白了就是串口通信,区别在于串口极其容易受干扰且传输距离近,MCU出来的TX,RX经过485芯片强化升级后变为抗干扰能力强的差分信号。硬件连接,485RX、TX接MCU串口TX、RX 485EN接任意IO口,用来切换485收发模式。
2024-09-24 17:50:05
752
原创 LCD段码式液晶屏驱动
使用这样的电路:我们只需要改变IO口的工作模式就可以达到改变COM端电压的大小,浮空输入模式下,IO口电压完全取决于外部电压,我的原理图5V和GND对半分刚好是2.5V,等于我的LCD段码屏base电压,所以我只需要让5个COM循环扫描,仅仅在对应的时间段内拉高或者拉低Seg口即可,COM口扫描波形如下。这个是四扫的示意图,简单说就是在一个时间片内只有一个COM口是工作在有效电压内,其余都不是,四个口来回换着工作,由于它换的太快了,人眼识别不了这么快的亮灭,就觉得它是一直亮的,这和呼吸灯是一个道理。
2024-09-24 16:26:41
1337
原创 单片机——按键检测
我毕竟不是氪金大佬,所以选择软件消抖。这里切记不要用阻塞式Delay,通过标志位的判断以及用计数器来确定是否是干扰还是真正的按下,这种编程思想在单片机尤其是裸机邻域中很重要,在这个基础上我们判断长按,短按,单机,双击就都很简单,只需要多用几个计数器即可。上图是共阳极接法,IO管脚我们可以设置为下拉输入,当按键松开时,IO读取到的为低,按下时,读取为高。在实现人机交互的需求下,最节约成本的方式莫过于外部按键。按键检测常用的方式有外部中断以及轮询,这里我们使用轮询方式。
2024-09-24 15:41:27
728
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人