草庐IT

基于STM32的USB键盘

一、STM32CubeMX配置1、选择相应芯片(本文使用STM32F070F6P6)2、RCC时钟配置和Debug设置注:这里的PA9/10要重映射为PA11/12供USB接口使用(大部分芯片是分开的不用设置)3、配置USB注:这里的PID和VID默认就可以了(多设备时可以更改)4、时钟配置二、应用层代码编写1、修改usbd_hid.c文件①、修改USBD_HID_CfgFSDesc参数首先长度,跳转至定义修改为41U(之前是34U)端点数1改为2,接口协议2(鼠标)改为1(键盘),报告描述符长度重定义为HID_KEYBOARD_REPORT_DESC_SIZE  63U最后配置集合中增加一部

stm32 FOC 电机介绍

今年开始学习foc控制无刷电机,这几天把所学整理一下,记录一下知识内容。前言:为什么要学习FOC?1.电机控制是自动化控制领域重要一环。2.目前直流无刷电机应用越来越广泛,如无人机、机械臂、云台、仿生机器人等等。需要什么基础?1.C语言,指针,结构体,编程规范。2.STM32外设使用。3.原理图阅读。4.芯片手册阅读。5.数序坐标系知识为什么要出本教程?1.直流无刷电机应用越来越广泛,网上资料比较散落,因此想要出一篇系统性的教程,从头到尾,深入浅出,帮助初学者快速入门直流无刷电机控制。 1、电机的分类1.1、直流有刷电机        直流有刷电机(BDC)是一种内含电刷装置,可以将直流电能转

【理论】STM32定时器时间计算公式 +【实践】TIM中断1s计时一次

 前言:定时器TIM的详细知识点见我的博文:11.TIM定时中断-CSDN博客STM32定时器时间计算公式公式解释:ARR(TIM_Period):自动重装载值,是定时器溢出前的计数值PSC(TIM_Prescaler):预分频值,是用来降低定时器时钟频率的参数Tclk:定时器的输入时钟频率(单位Mhz),通常为系统时钟频率或者定时器外部时钟频率Tout:定时器溢出时间(单位us)。一定要注意这个单位是us公式由来:1.定时器的时钟频率是Tclk,TIM_Prescaler即为PSC的值。时钟频率被分频了PSC+1,那么此时定时器的最终频率为,故可知定时器计数值加1所需的时间为注:时间等于频率

STM32CubeMX教程24 WDG - 独立窗口看门狗

1、准备材料开发板(正点原子stm32f407探索者开发板V2.4)STM32CubeMX软件(Version6.10.0)野火DAP仿真器keilµVision5IDE(MDK-Arm)ST-LINK/V2驱动XCOMV2.6串口助手逻辑分析仪nanoDLA2、实验目标使用STM32CubeMX软件配置STM32F407开发板的独立看门狗(IWDG)和窗口看门狗(WWDG)并了解其功能实现3、WWDG实验流程3.0、前提知识STM32F407拥有两个看门狗,分别为独立看门狗和窗口看门狗,这两个看门狗的作用都是监控程序运行,程序死机或跑飞就使系统复位,值得注意的是,一旦开启看门狗就无法停止,除

stm32通用外部spi下载算法实现

参考硬汉嵌入式:【实战技能】任何支持SWD接口的单片机都可以方便移植的SPIFlash烧写算法制作_哔哩哔哩_bilibili该up主提供的stm32H7的模板工程,目前需求是实现基于正点原子探索者stm32f407zet6+W25Q128下载算法实现步骤使用cubemx建立一个LED工程,主要是配置系统时钟复制系统时钟配置函数复制stm32f4的hal库文件和添加头文件路径添加必要的文件模板工程修改gpio模拟spi外设的引脚system_stm32f4xx.c文件修改FlashDev.c文件的的FlashDevice内部的参数,主要是flash的大小,和算法名称修改输出文件名和mcu型号选

【国名技术】N32G401单片机驱动配置(STM32系列适用)

N32G401总体上和STM32F4系列差不多,无论是从芯片资源,还是各种寄存器,都有相通之处,所以N32G401的所有驱动,如果使用smt32的话也可以借鉴使用(修改函数名)文章代码仅限于参考,如果直接CV是肯定用不了的,源代码链接在最后PS:所有驱动基于N32G401F7S8-1,一共20个引脚,并且没有外接晶振,用的是内部的8MHZ的HSI,倍频到64MHZ,所以接下来的配置都以64MHZ为基准。在编写驱动的过程中发现STM32单片机有直接写bitband操作,比如:IO操作函数 #define DS18B20_DQ_OUTPAout(0)//数据端口 PA0#def

【模块系列】STM32&BMP280

前言  最进想练习下I2C的应用,手上好有BMP280也没用过,就看着机翻手册和原版手册,开始嘎嘎写库函数了。库的命名应该还1是比较规范了吧,就是手册对于最终值的计算方式很迷糊,所以现在也不能保证有可靠性啊,大家看着来用吧。注意:该BMP280库不一定能用,仅供参考。我没有参考过别的库的数据。也不知道可不可靠。环境开发板:STM32C6T6最小系统板案例的代码环境:Keil5+STM32CubeMX生成的HAL库,OLED(4P)+BMP280案例接线:BMP280,OLED模块VCC接3.3V。BMP280和OLED的SDA接到PB9,SCL接到PB8。BMP280模块的SDD引脚接GND,

【零基础 STM32通过CAN通信驱动Maxon电机】第三章 STM32 CAN通信回环模式测试及Maxon电机通信

零基础STM32通过CAN通信驱动Maxon电机第三章STM32CAN通信回环模式测试及Maxon电机通信文章目录零基础STM32通过CAN通信驱动Maxon电机一、STM32CAN通信回环模式测试二、STM32通过CAN通信驱动Maxon电机1.CAN通信以及MaxonCAN指令2.接线与通信总结一、STM32CAN通信回环模式测试正点原子官方给的CAN通信例程需要lcd显示屏和两块板子,本章修改代码,仅用一块STM32进行回环模式的测试。首先下载修改后的程序,运行并烧录(接线方式和运行方式与上一章完全相同)。注意板子右侧的接线帽要接正确,CRX接PA11,CTX接PA12。具体原理请查看代

【嵌入式开发工具】STM32+Keil实现软件工程搭建与开发调试

本篇文章介绍了使用Keil来对STM32F103C8芯片进行初始工程搭建,以及开发与工程调试的完整过程,帮助读者能够在实战中体会到Keil这个开发环境的使用方法,了解一个嵌入式工程从无到有的过程,并且具备快速搭建一个全新芯片对应最小软件工程的基本能力思路。文章首先介绍了基础工程搭建的过程,包括代码的组织以及Keil嵌软工程配置,然后讲述了一个简单功能的开发,最后介绍了Keil环境下提供的代码调试工具以及一些常用工具配置项。目录Keil概念工程搭建代码组织Keil配置开发与调试下载调试准备串口打印开发 代码调试Keil概念Keil(全称KeilµVisionIDE)是一款集成开发环境(IDE),

STM32——SYN6288语音合成模块

前言    语音模块是我们学习工程中常见的模块之一,今天给大家分享SYN6288模块的简单使用,软件部分我会提供stm32f103zet6/stm32f407zgt6的完整代码供大家参考。深入的学习,还需要仔细阅读数据手册等资料。希望这篇文章能帮到大家!一、SYN6288语音合成模块介绍     SYN6288语音合成模块是一款基于DSP技术的语音合成模块,可以将文本信息转换为自然  流畅的语音输出。该模块具有以下特点:     1. 支持多种语言,包括中文、英文、日文等。     2.可以调节音量、语速、音调等参数,以满足不同需求。     3. 采用数字语音合成技术,输出语音清晰、自然。