草庐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拥有两个看门狗,分别为独立看门狗和窗口看门狗,这两个看门狗的作用都是监控程序运行,程序死机或跑飞就使系统复位,值得注意的是,一旦开启看门狗就无法停止,除

32岁Android开发也来学HarmonyOS了,还涨薪了

前言华为于去年9月正式宣布启动HarmonyOSNEXT计划,即“鸿蒙原生应用”全面启动。这意味着鸿蒙系统将不再兼容安卓应用,而是采用自研的鸿蒙内核、原生智能、方舟引擎等技术,构建全新的鸿蒙应用生态。而这只是华为发力的一部分,更多的厂商、高校合作也是在快速进行中。越来越多的资本也看上了华为的优质用户,各大鸿蒙版的app也在快速兼容上线。在移动应用开发领域摸爬滚打多年的我,虽然对Android系统有着深厚的感情。然而,随着市场的变化,也逐渐意识到Android的式微。与此同时,公司对于很多员工薪资进行了调整,很多人倍于生活上的压力也是选择了妥协。我个人是想先待在公司然后寻找出路的,直到在一次偶然

ESP32桌面小电视内存不够用! “Arduino 为开发板 ESP32 Dev Module 编译时出错“。

1.ST7789驱动(见文末参考资料[2])2.电路图(详细电路图略)去掉CH340K下载电路,用串口转TTL下载工具下载;去掉按键设置显示动画,重启配网等操作;3.内存修改项目使用了2880030字节,占用了(219%)程序存储空间。最大为1310720字节。全局变量使用了45016字节,(13%)的动态内存,余留282664字节局部变量。最大为327680字节。项目太大了;阅读以下页面的提示减小文件大小。http://www.arduino.cc/en/Guide/Troubleshooting#size为开发板ESP32DevModule编译时出错。3.1步骤第一步:下图路径找到boar

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

ESP32的ESP-IDF在VScode工程下,头文件标红警告、报错、无法跳转

具体问题如下:在VScode环境中,通过ESP-IDF插件开发ESP32系列设备,但是工程代码中提示找不到头文件、相关的函数也无法跳转,这样不仅不美观,也一定程度上影响了开发效率,需要着手解决。解决方法:顺利解决的前提是要确保已经正确安装了ESP-IDF和其依赖项。检查VScode的includePath设置。方法①:在VSCode中,可以通过.vscode/c_cpp_properties.json文件来配置includePath。需要确保ESP-IDF的头文件路径已经被包含在includePath中。如果发现工程下的.vscode文件夹下并没有c_cpp_properties.json文件

【模块系列】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,