基本上来说,STM32在CubeMX生成的不同class的设备,都是支持windows免驱的,唯独在DFU模式的情况下,需要手动安装st的驱动才能实现功能,那么有什么办法能够在DFU模式下免驱呢,答案就是WinUSB。废话不多说,我们用最简单明了的方式来实现此功能,上代码!目前我们选用的都是MicrosoftOS2.0描述符规范,因为1.0的描述符规范已经逐渐被微软抛弃了,在这里都没有什么存在的意义,1.0是通过请求0xEE的描述符来进行识别,到2.0是通过BOS的请求来获取完整的内容。通过CubeMX生成基础程序我这边选择的芯片是STM32F103,当然,其他有USB功能的STM芯片都是适用
最近在野火的STM32F103VET6开发板上实现PMBus从机程序,这个程序参考了以下这篇博客的关于使用中断法实现I2C从机程序:STM32设置为I2C从机模式_iic从机_柒壹漆的博客-CSDN博客 ,实测这个程序是可以正常运行的,感谢博主的分享!另外我还参考了德州仪器的一篇基于TMS320F2803x系列单片机PMBus协议的实现,包括主机和从机程序(源程序和文档下载地址:http://www.ti.com/lit/zip/SPRABJ6,文档的截图如下)。 PMBus协议的详细内容我就不说了,这里我主要说下PMBusSlave.c这个文件,代码和主要函数如下:1、PMBusSlave_
DMA(DirectMemoryAccess)是STM32微控制器中的一种重要外设,可以实现高效的数据传输,减轻CPU的负担。DMA的工作原理是通过独立的通道将数据从外设直接传输到内存,或者从内存传输到外设,而无需CPU的干预。本文将深入介绍STM32中DMA的工作原理和配置方法,并提供一个简单的示例代码来演示DMA的用法。✅作者简介:热爱科研的嵌入式开发者,修心和技术同步精进❤欢迎关注我的知乎:对error视而不见代码获取、问题探讨及文章转载可私信。 ☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。🍎获取更多嵌入式资料可点击链接进群领取,谢谢支持!👇点击领取更多详细资料DMA的工作原理:
串行外设接口SPI(SerialPeripheralInterface)是由Motorola公司开发的一种通用数据总线。 在某些芯片上,SPI接口可以配置为支持SPI协议或者支持I2S音频协议。SPI接口默认工作在SPI方式,可以通过软件把功能从SPI模式切换到I2S模式,具体需参考操作手册 串行外设接口(SPI)允许芯片与外部设备以半/全双工、同步、串行方式通信。此接口可以被配置成主模式,并为外部从设备提供通信时钟(SCK)。接口还能以多主配置方式工作。它可用于多种用途,包括使用一条双向数据线的双线单工同步传输,还可使用CRC校验的可靠通信。 I2S
初学者学习51还是STM32在嵌入式系统领域,51和STM32是两种常见的单片机架构。对于初学者来说,选择学习哪种架构可能会成为一个难题。本文将对初学者学习51和STM32进行比较,以帮助读者做出明智的选择。1.51架构51架构是指Intel8051系列单片机。由于其历史悠久,许多教材和示例代码都基于51架构。以下是51架构的一些特点:简单易懂:51架构拥有简单的指令集和寄存器结构,因此适合初学者快速上手和理解。广泛支持:51架构的单片机在市场上非常常见,可以轻松找到廉价和广泛使用的开发板、调试工具和教学资源。庞大的生态系统:51架构已经有了庞大的开发社区,相应的问题解答和技术支持也很容易找到
前言趁你们不注意,我突然更!!目录前言一、直流减速电机与霍尔编码器1.1、编码器介绍与选择1.2、编码器参数1.3、编码器测速原理1.3.1、方向判断1.3.2、速度获取二、STM32cubeMX库配置编码器模式2.1、连线分析2.2、cubeMX设置2.2.1、cubeMX初始化2.2.2、高级定时器编码器模式(CH1,CH2通道)2.2.3、串口DMA2.2.4、PWM输出2.2.5、GPIO控制电机方向2.2.5、LED2.2.6、基本定时器2.2.6、配置中断优先级三、离散PID简介3.1、位置式3.2、增量式四、代码及其讲解后记一、直流减速电机与霍尔编码器1.1、编码器介绍与选择是一
一、GPIO基本资料 GPIO为通用输入输出口,可配置8种输入输出模式,引脚电平为0~3.3V(部分可容忍5V)。 输出模式下可控制端口输出高低电平,以驱动LED,控制蜂鸣器,模拟通信协议输出时序(I2C,SPI)等。 输入模式下可读取端口的高低电平或电压,以读取按键输入,外接模块电平信号输入,ADC电压采集,模拟通信协议接收数据等。二、GPIO结构 图一 图二图三 如图一,STM32中,所有GPIO挂载在APB2总线上。按GPIOA,GPIOB,GPIOC…命名,每GPIO外设16引脚(0~15/PX0~PX15)。 如图二,寄存器是特殊的储存器,内
目录一、何为最小系统?二、最小系统电路设计1.电源(1)各种名词解释(2)为什么会有VDD_1_2_3区分?(3)MircoUSB(4)5v->3.3v滤波电路(5)电源指示灯2.复位电路(1)什么是复位(2)复位引脚和电路3.晶振模块(1)复位引脚(2)时钟和时钟树(3)为什么不直接使用内部8M时钟源?(4)8MHz主晶振介绍(5)为什么选择32.768KHzRTC晶振?(6)晶振原理图4.程序下载口(1)JTAG下载:(2)SWD下载:(3)串口下载:(4)程序下载口原理图编辑5.启动方式(1)三种启动方式:(2)启动原理图一、何为最小系统?最小系统板就是一个最精简的电路,精简到只能维持
gcc-arm-none-eabi工具链+MinGW+gitbash/powershell实现win10下stm32程序编译1它们之间的关系1.1gcc-arm-none-eabi工具链gcc-arm-none-eabi是一个用于嵌入式系统开发的工具链,它提供了一套用于编译、汇编和链接ARMCortex-M架构的代码的工具和库,如gcc,ar等。说白了,.c文件就是通过gcc-arm-none-eabi编译成了可执行文件1.2MinGWMinGW(MinimalistGNUforWindows)是一个在Windows环境下使用GNU工具集进行软件开发的开发环境。它提供了一系列的开发工具和库,使
前言 本文以初学者角度切入,详细剖析按键检测原理,实现按键短按、短按抬起、首次长按、持续长按次数、长按抬起功能;目录前言波形图分析抖动原因为什么要消抖如何消抖原理图分析程序设计思路代码实践按键配置按键检测实验结果留下反思波形图分析 如图为按键按下→释放过程的波形图可以从图中看到,实际波形在按下与释放时都有一段杂乱的波形,期间存在着多次高电平与低电平,这就是抖动。抖动原因 机械原因:由于按键内部构造常为弹簧、金属弹片等接触器件,当按键按下或释放时,这些器件的反弹、震动等原因导致瞬时的接触和断开,从而产生抖动; 电气原因:电路噪声、环境干扰、电容充放电等因素