文章目录目的基础说明HID类演示代码分析总结目的USB是目前最流行的接口,现在很多个人用的电子设备也都是USB设备。目前大多数单片机都有USB接口,使用USB接口作为HID类设备来使用是非常常用的,比如USB鼠标、键盘都是这一类。这篇文章将简单介绍使用STM32实现相关内容。基础说明一些USB相关最基础的内容可以参考下面文章中基础说明部分:《STM32USB使用记录:使用CDC类虚拟串口(VCP)进行通讯》USB设备通过一系列的描述符来描述自己,告诉主机自己是什么设备、具有什么功能等。描述符一些基本的说明如下:每一个USB设备只有一个设备描述符,主要向主机说明设备类型、端点0最大包长、设备版本
软件mingwcmakegcc-arm-none-eabi-gcc并添加环境变量文件结构├─Bsp│├─driver_time│└─driver_uart├─cmake├─Component│└─Fifo├─Driver│├─Inc│└─Src├─Lib│├─CMSIS││├─Core│││└─Include││└─Device││└─ST││└─STM32F7xx││└─Include│└─STM32F7xx_HAL_Driver│├─Inc││└─Legacy│└─Src├─Link├─Start_up└─User执行脚本build.bat@echooffIF/i"%1"=="-C"(rd
1.实验目的使用树莓派向STM32发送数据,STM32收到数据后通过串口的方式将数据打印到电脑上,同时返回给树莓派数据。树莓派接收到数据后打印在控制台上。SPI的配置为树莓派主机STM32从机全双工8bit传输工作模式0:CPOL|CPHA=00MSB优先禁止CRC校验2.SPI简介SPI(SerialPeripheralInterface,串行外设接口)是Motorola公司提出的一种同步串行数据传输标准2.1接口SPI接口经常被称为4线串行总线,以主/从方式工作,数据传输过程由主机初始化,其使用的4条信号线分别为:SCLK:串行时钟,用来同步数据传输,由主机输出,从机不用配置时钟MOSI:
PWM是一种应用广泛的利用微处理器的数字输出来对模拟电路进行控制的一种技术(即对脉冲宽度的控制)PWM同时也是驱动蜂鸣器,驱动舵机,通信等重要的一环,而对于初学者而言,点完灯的下一个程序就是驱动蜂鸣器,本篇将讲述如何使用及调整PWM输出频率,占空比工程文件可入Q群:659512171获取 PWM简介:对于STM32,PWM输出依靠定时器,而在STM32F103c8t6中,共有4个定时器可供输出,每个都可以配置4路输出,所以总共可以输出16路PWM,本篇只介绍和应用单路PWM输出。工程开始:新建工程:打开STM32CubeMX,新建工程,配置外部高速时钟: 输入需要的频率,敲击回车,STM32
目录1.DMA结构体 STM32F103:STM32F407: 2.F4系列实现存储器到存储器数据传输1)结构体配置&初始化2)主函数补充知识点:关于变量存储的位置,关于内部存储器一般存储什么内容3.F4系列实现存储器到串口4数据传输1)结构体配置&初始化2)主代码:实现串口4DMA请求,以及使能DMA1.DMA结构体 STM32F103:typedefstruct{uint32_tDMA_PeripheralBaseAddr;//外设地址uint32_tDMA_MemoryBaseAddr;//存储器地址uint32_tDMA_DIR;//传输方向uint32_tDMA_BufferSize
目录I2C起始条件:终止条件: 发送一个字节接收一个字节 接收发送应答 代码I2CI2C.CI2C.hMpu6050Mpu6050.cMpu6050.hMpu6050Reg.hmain.c结果 要想获取Mpu6050陀螺仪和加速度那就需要了解一下Mpu6050。Mpu6050使用的是I2C通讯先了解一下I2C起始条件:SCL高电平期间,SDA从高电平切换到低电平终止条件:SCL高电平期间,SDA从低电平切换到高电平 发送一个字节接收一个字节 接收发送应答 代码下来让我们用代码实现一下I2C通讯:I2CI2C.C#include"stm32f10x.h"//Deviceheader#includ
STM32的启动方式,系统存储器启动就是通过ISP下载ISP简介ISP下载是指可以通过串行外设,直接将程序下载Flash中,然后自动运行程序的启动方式。ISP的时候需要用到bootloder(自举程序),bootloader存储在STM32内部的自举ROM存储器(系统存储器)中,作用是接收串行外设发送的程序数据并存到Flash中ISP普通下载步骤电脑通过USB转串口线连接STM32的USART1,并打开电脑的上位机设置BOOT0是高电平,BOOT1是低电平,此时单片机进入bootloader模式,执行自举程序上位机开始发送程序,STM32通过USART1接收程序,并写到Flash中下载完成后,
学习之路主要为FreeRTOS操作系统在STM32F103(STM32F103C8T6)上的运用,采用的是标准库编程的方式,使用的IDE为KEIL5。注意!!!本学习之路可以通过购买STM32最小系统板以及部分配件的方式进行学习,也可以通过Proteus仿真的方式进行学习。后续文章会同时发表在个人博客(jason1016.club)、CSDN;视频会发布在bilibili(UID:399951374)作者的话: 相信大家在学习完STM32的裸机开发后,满怀信心地去写一个庞大的项目的时,写到后期总会感觉,各个模块的任务总是会相互制约和影响,存在绝对的先后顺序关系(也称为轮询方法),
一、设计需求1.1设计需求总结为了能帮助消防员有效的控制火灾,尽可能地降低人员伤亡和财产损失,当前基于STM32单片机设计了一款智能消防小车;当前小车支持烟雾浓度检测、可燃气体检测,环境温度湿度检测、火焰源检测、能支持远程遥控,方便消防员远程操控进行灭火。小车也支持自动消防,在行驶过程中,消防智能小车通过火焰传感器感应火源以检测火焰具体位置,可以利用算法设计进行循迹灭火,该模式下驱动电机水泵喷水,可以有效控制火源的第二次发生,从而完成消防作业。小车本身带了超声波测距模块,红外壁障模块,在自动或者手动控制行驶过程中可以防止碰到障碍物损伤小车。小车在消防灭火的过程中,会采集环境的温度,湿度,有毒气
使用STM32F103C8T6驱动0.96寸单色OLED显示屏:OLED显示屏的驱动,在设计开发中OLED显示屏十分常见,因此今日学习一下。一篇文章从程序到显示都讲通。文章提供源码、原理解释、测试工程下载,测试效果图展示。 目录OLED驱动原理—IIC通信:SSD1306单色0.96OLED显示屏特性程序理解与设计:1.操作时序—写命令、写数据:二、清屏命令:三、初始化SSD1306显示:四、开启与关闭指令:五、OLED坐标设置:六、常用ASCLL码字符字库:七、字符显示函数:程序设计:测试效果:测试工程下载:OLED驱动原理—IIC通信:这里是基础原理,可以大致浏览即可,有个基本印象:下图为