驱动开发
文章平均质量分 89
分享传感器驱动、系统驱动相关的技术
麻辣长颈鹿0v0
牛顿早生百年,只为避我锋芒
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
软件模拟SPI通信详解(内附完整代码及注释)
摘要: 本文详细介绍了SPI通信协议及其应用。SPI是一种高速同步串行接口,包含CLK、CS、MOSI和MISO四线制。文章重点解析了时钟极性(CPOL)和相位(CPHA)参数,通过时序图说明数据采样过程。针对CPOL=0、CPHA=1的从机设备,提供了完整的软件模拟SPI实现方案,包含C语言和面向对象的C++版本代码。其中C++版本采用继承方式实现多设备支持,包含管脚初始化、时钟控制、数据收发等核心功能。两种实现均采用高位先发的MSB传输方式,通过精确的时序控制实现SPI通信功能。原创 2025-10-22 20:51:18 · 1486 阅读 · 0 评论 -
【CS32L015C8T6】SPI详解及硬件SPI配置方法(内附完整代码及注释)
本文介绍了在CS32L015C8T6单片机上开发SPI通信的实践经验。作者针对该芯片资料匮乏、官方驱动不适用等问题,详细讲解了SPI协议原理、时序特点及硬件实现机制。文章重点分析了CS32L015的SPI硬件资源,包括双SPI接口、12Mbps速率和CRC校验功能,并提供了完整的初始化代码和GPIO配置方法。通过对比三个核心通信函数(发送、接收、收发)的工作原理,深入解析了SPI基于移位寄存器的数据交换本质。本文旨在为开发者提供实用参考,减少重复开发工作。原创 2025-09-24 10:16:57 · 1218 阅读 · 1 评论 -
【CS32L015C8T6】UART串口通信详解及驱动配置方法(内附完整代码及注释)
本文介绍了CS32L015C8T6单片机的UART串口通信配置方法。首先对比了串行通信和并行通信的特点,重点讲解了UART串口协议的基本原理和连接方式。针对CS32L015C8T6芯片,详细说明了其串口硬件资源,包括4个通用串口和1个低功耗串口的区别。文章提供了完整的串口配置流程:GPIO复用初始化、UART参数设置、中断配置及回调函数实现,并附有详细的代码注释。特别指出该芯片特有的"BaudDouble"参数的作用,虽然能支持更高波特率但不会改变实际配置波特率。最后给出了UART数据收原创 2025-09-24 10:07:37 · 791 阅读 · 0 评论 -
【CS32L015C8T6】GPIO驱动配置方法(内附完整代码及注释)
本文介绍了芯海CS32L015C8T6单片机的GPIO配置方法。该芯片具有4个GPIO端口(A-D),每个端口最多8个复用功能。文章详细说明了GPIO配置的特殊参数(如硬件消抖功能),并提供了完整的初始化代码示例,包括中断模式、SWD下载端口、输入/输出模式的配置方法。作者分享了在实际开发中总结的经验,旨在帮助开发者减少重复工作。代码示例包含详细注释,展示了GPIO模式设置、中断配置、时钟使能等关键操作。原创 2025-09-19 16:42:32 · 340 阅读 · 0 评论 -
【CS32L015C8T6】ADC驱动配置方法(内附完整代码及注释)
本文介绍了芯海CS32L015C8T6单片机的ADC配置方法。该MCU采用12位精度ADC,具有17个外部和5个内部输入通道,但缺乏DMA功能。文章详细阐述了配置流程:1)设置GPIO模拟输入功能;2)配置ADC参数(包括自动累加功能);3)实现中断处理。重点讲解了ADC单通道中断回调函数的实现方法,并提供了完整代码示例。作者分享了实际开发中的经验,指出官方驱动代码的不足,帮助开发者避免重复造轮子。适用于需要低成本ADC解决方案的嵌入式开发场景。原创 2025-09-19 14:57:06 · 1074 阅读 · 2 评论 -
【CS32L015C8T6】下载Hex文件配置及异常现象解决方法
本文介绍了CS32L015C8T6单片机在Keil环境下的下载配置方法及常见问题解决方案。主要内容包括:1)选择正确的下载器和Cortex-M0+内核;2)处理地址映射错误提示;3)通过Debug-Setting界面重新配置Flash下载算法;4)添加64KB Flash下载算法后成功下载Hex文件。文章提供了基于芯海官方HAL库开发的实用技巧,适用于开发过程中遇到的下载异常情况。原创 2025-09-10 20:02:51 · 488 阅读 · 0 评论 -
【CS32L015C8T6】内部FLASH读写方法(内附完整代码及注释)
本文介绍了芯海CS32L015C8T6单片机内部FLASH操作方法。该芯片具有64KB FLASH(128个512B扇区)和8KB SRAM,文章详细讲解了FLASH地址定义差异,并提供了基于HAL库的读写函数代码:写入函数包含解锁、擦除(以扇区为单位)、编程(双字写入)和上锁流程;读取函数采用memcpy实现数据复制。文末附有完整代码注释,并提示需要官方支持库可联系作者或芯海官方。原创 2025-09-10 19:52:10 · 550 阅读 · 0 评论 -
【CS32L015C8T6】配置单片机PWM输出(内附完整代码及注释)
摘要:本文介绍了CS32L015微控制器的PWM配置方法。CS32L015是一款基于ARM Cortex-M0+内核的低功耗MCU,内置丰富外设资源,包含多个定时器模块。文章详细说明了其PWM硬件资源,包括3个16位高级定时器、4个通用定时器等。重点描述了PWM配置步骤:1)使能时钟;2)初始化GPIO复用功能;3)配置定时器参数;4)设置PWM模式。最后提供了完整的代码实现,包括定时器初始化、PWM通道配置等关键函数,并附有详细注释,可作为开发参考。原创 2025-09-04 20:00:39 · 555 阅读 · 0 评论 -
【CS32L015C8T6】使用 通用定时器 配置单片机时基TimeBase(内附完整代码及注释)
本文介绍了CS32L015微控制器的时基(TimeBase)和SysTick系统滴答的概念、联系与区别。时基作为系统时间基准可由SysTick或通用定时器实现,常用于延时、任务调度等功能。文章详细讲解了通过CS32L015的基本定时器配置系统时基的步骤,包括时钟使能、定时器选择、结构体初始化、中断优先级设置等关键环节,并提供了完整的配置代码示例。该配置可实现软件定时器扩展功能,适用于嵌入式系统开发。原创 2025-09-04 19:53:57 · 922 阅读 · 0 评论 -
MS1003时间测量芯片驱动配置(内附完整代码及注释)
MS1003是一款高精度时间测量芯片(TDC),具有ps级的时间分辨率(1ps时间内光飞行0.3mm),是MS1002的升级版,有更高的精度和更小的封装,配置方式也更丰富,适用于激光雷达、激光测距和脉冲间隔测量。◼自动测量START到STOP之间的时间间隔,无需再配置寄存器◼在非校准模式下,可以测量(小于配置的预期脉冲数)内的任意数量的脉冲◼双通道单精度模式测量最小时间分辨率46ps(光在1ps时间飞行0.3毫米)◼单通道双精度模式测量最小时间分辨率23ps◼非校准单精度测量范围。原创 2025-06-16 18:08:05 · 1002 阅读 · 5 评论 -
LSMDSV16X六轴传感器驱动,启用SFLP功能输出四元数(内附驱动代码及注释)
最近在使用LSMDSV16X六轴传感器来做三维空间位姿估计,因为LSMDSV16X传感器有一个SFLP低功耗传感器融合功能,可以直接输出加速度计和陀螺仪数据融合后计算出的四元数,这个四元数是以世界坐标系位参考的,可以用来表示机身在世界坐标系下的姿态,类似于MPU6050的内置传感器融合模块,但是MPU6050价格太贵,所以使用LSMDSV16X来实现。驱动直接使用LSMDSV16X六轴传感器的官方版本,本文将介绍如何将官方驱动成功移植到开发者自己的项目中并实现运行。原创 2025-06-16 16:19:39 · 992 阅读 · 0 评论 -
【软件模拟I2C】详解IIC通信协议(内附完整软件模拟IIC代码及注释)
IIC通信协议详解,内附软件模拟IIC通信协议完整代码以及代码注释,包甜的@!原创 2025-04-30 00:02:04 · 3495 阅读 · 0 评论 -
二、使用LSM6DS3TR六轴传感器加速度计+陀螺仪数据融合算法计算三维空间旋转向量(内附完整代码及注释)
本文介绍了一种新的加速度计和陀螺仪的传感器融合思路,用来计算三维空间的旋转向量,内附完整版的算法代码以及注释。原创 2025-05-23 00:05:26 · 1824 阅读 · 2 评论 -
一、LSM6DS3TR六轴传感器驱动及数据读取(内附完整代码及注释)
本文介绍了LSM6DS3TR六轴传感器的驱动设计思路,内附完整驱动代码和注释原创 2025-05-22 20:58:10 · 3009 阅读 · 5 评论
分享