- 博客(9)
- 收藏
- 关注
原创 CH585M 主机多连接流程梳理
本文概述了多连接主机的BLE通信流程:1)初始化阶段设置GAP/GATT参数;2)扫描发现目标设备后建立连接;3)连接成功后执行服务发现和特征值操作;4)周期性进行数据读写和信号强度检测;5)连接断开时自动重连。流程涉及Central_Init初始化、设备发现、连接管理、服务发现等关键环节,通过事件驱动机制实现自动化的BLE通信管理。
2025-07-19 14:58:23
407
原创 stm32 lin主机收发程序
使用STM32 HAL库实现LIN(Local Interconnect Network)主机收发程序,需要依赖STM32的UART外设,因为LIN协议是基于UART的。LIN协议通常使用UART的break信号来标识帧的开始。
2024-05-31 22:15:24
2918
4
原创 USB学习笔记1 基础知识
USB(Universal Serial Bus)是一种通用的串行总线标准,用于在计算机系统、外部设备和其他数字设备之间传输数据。USB接口为设备提供了供电、数据传输和连接性,成为连接各种外围设备的主流标准。
2024-03-06 14:26:35
1498
1
原创 使用stc32解析OBD数据
解析了新桑塔纳,解析到了方向盘角度,油门踏板深度,4门状态,左右转向灯、倒车灯,远近光等等。3、把接收到的can数据从串口输出,方便在电脑上分析。5、在上位机软件或单片机上过滤,每个筛选出来找信号。2、然后初始化串口1,用来输出接收到的obd数据。4、保存一段收到的报文数据,把pid去重。6、这是我找到的部分信号。
2023-12-25 08:12:18
1084
原创 STC8H库函数使用(2)——任务调度主循环
i++)循环每个任务结构体,如果这个任务的定时计数器不是0,定时计数器减1,如果定时计数器为0了,那就把重载计数器的值赋给定时计数器,然后把任务状态置1,表示这个任务需要运行一下了。任务处理函数很好理解,每个人任务循环一边,只要任务状态 Task_Comps[i].Run为1,清零状态位Task_Comps[i].Run = 0,然后运行任务Task_Comps[i].TaskHook()。我们看一下是怎么实现的,首先计数器每ms减1上面说了是通过定时器0中断实现的,我们看一下定时器0的中断函数。
2023-06-20 16:01:00
3130
3
原创 用STC8H单片机外部中断实现增量式编码器完整计数
这是优化后的,通过将编码器状态和计数器封装到结构体中,我们可以更加便捷地管理编码器状态,并且在中断服务程序中也更容易理解代码的逻辑。功能是利用单片机外部中断判断编码器A相上升沿、下降沿时B相状态,避免编码器方向转换时少计数。
2023-06-14 13:15:36
1578
2
原创 STC8H库函数使用笔记
如上图,从入口main函数进去后,先调用system_init函数,把需要用到的硬件初始化后,在while循环运行任务调度函数Task_Pro_handler_Callback();GPIO初始化,IO口有四种模式:准双向口(弱上拉),高阻输入,漏极开路,推挽输出。用来初始化定时器,共有5个定时器,这里初始化定时器0,产生1ms的中断,作为任务调度的基准时钟。打开官方的库函数综合例程,里面有4个文件夹,分别是User,APP,Driver,ISR。在这里除了配置输入输出模式外,还可以配置内部上拉电阻,
2022-11-25 20:50:43
4172
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅