草庐IT

ESP32-CAM

全部标签

使用C++编写STM32软件IIC

最近在重构自己的平衡车代码,里面需要用到MPU6050的DMP,从中读取四元数进行欧拉角解算,但是看着软件IIC的代码实在是很变扭,因为之前不会C++,所以如果需要调用多个IIC设备,那么使用的时候就需要重复的去进行软件IIC底层代码的初始化,非常的麻烦,而且需要调整各个引脚,在学习过C++之后,发现类实在是太好用了,那么我就在想能不能通过类把软件IIC的底层进行封装,实现和arduino一样的编程效果,使用的时候只需要放入软件IIC的SCL和SDA对应的GPIO即可。1.环境软件环境:keilCubeMX硬件环境:STM32F103C8T6MPU6050使用引脚:PB8–>SCLPB9–>S

STM32F103ZET6和C8T6程序移植过程中的问题

STM32F103ZET6和C8T6程序移植过程中的问题提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、解决报错问题1.改变芯片型号2.替换启动文件3.更改宏定义二、下载问题前言今天发现一个很有意思的事,之前写的C8T6上的程序在战舰开发板(ZET6)上一点问题没有,仅仅只需要改一下芯片的选型,而使用C8T6上的程序移植到ZET6只改变芯片的信号却是会报错,而且不能下载,在网上搜了搜,看到有的博主说是STM32芯片是向下兼容,即大容量ZET6兼容中容量C8T6,而C8T6改成ZET6却是需要进行下面一些操作。一、解决报错问题如果只更改芯片型号的话将会出现12个e

基于STM32倒车雷达系统(OLED显示)(Proteus仿真+程序+设计报告)

编号:25基于STM32倒车雷达系统(OLED显示)功能描述:   本设计由STM32单片机+HC_SR04超声波模块+OLED+按键+蜂鸣器LED组成。1、采用STM32F103最小系统。2、HC_SR04超声波模块实现测距。测距范围2cm-400cm之间。3、OLED实时显示测到的距离。4、三个按键可实现上限报警值设定,按键分别为设置键、设置加、设置减。5、当测得距离小于上限值时,声光报警。PROTEUS8.11版本才可使用视频演示链接:25、基于STM32倒车雷达系统(OLED显示)仿真图:程序源码:/*******************************************

STM32的GPIO知识(F103C8T6为例)

    学习过51单片机的同学应该知道IO引脚,表示这个引脚既有输入也有输出的功能,STM32的GPIO也是如此,它的引脚同样也有输入输出的功能。接下来我们来看一下这个芯片的引脚布局。 通过引脚的名字我们可以看出以下的现象①48和47,36和35,23和24这三组引脚是供电用的,8和9是模拟供电。供电电压一般为3.3V。        这是因为STM32主打的是高性能、低功耗的特色。如果学过初中电学你应该知道一个简单的功率的公式:P=UI,P就是功率,U是电压,I是电流,那我们的电压是减少了,电流也不可能会增大非常大,那么整体的功率是比较小的。为什么要多组供电呢,STM32的多组供电对应不同的

嵌入式-stm32重要基础知识(及踩过的坑)

1、固件库:固件库就是函数的集合,固件库函数的作用是向下负责与寄存器直接打交道,向上提供用户函数调用的接口(API)。2、CMSIS标准与固件库的关系就是对固件库函数的要求。ARM公司为了能让不同的芯片公司生产的Cortex-M3芯片能在软件上基本兼容,和芯片生产商共同提出了一套标准CMSIS标准(CortexMicrocontrollerSoftwareInterfaceStandard),翻译过来是“ARMCortex™微控制器软件接口标准”。ST官方库就是根据这套标准设计的。其实不用这么讲这么复杂的,一个简单的例子,我们在使用STM32芯片的时候首先要进行系统初始化,CMSIS规范就规定

【雕爷学编程】Arduino智能家居之使用Arduino Uno和ESP8266模块连接到WiFi网络

Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用ArduinoIDE(集成开发环境)来编写、编译和上传代码到Arduino板上。Arduino还有一个丰富的库和社区,你可以利用它们来扩展Arduino的功能和学习Arduino的知识。Arduino的特点是:开放源码:Arduino的硬件和软件都是开放源码的,你可以自由地修改、复制和分享它们。易用:Arduino的硬件和软件都是为初学者和非专业

java - 尝试在 IntelliJ : Error:Abnormal build process termination: Error: This Java instance does not support a 32-bit JVM. 中运行 Android 项目

Error:Abnormalbuildprocesstermination:Error:ThisJavainstancedoesnotsupporta32-bitJVM.Pleaseinstallthedesiredversion.如何解决?Java版本:$java-versionjavaversion"1.6.0_65"Java(TM)SERuntimeEnvironment(build1.6.0_65-b14-466.1-11M4716)JavaHotSpot(TM)64-BitServerVM(build20.65-b04-466.1,mixedmode)JAVA_HOME:$e

STM32的中断

目录一、STM32中断概述二、外部中断控制器EXTI三、按键中断四、串口中断一、STM32中断概述处理器中的中断      在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去为处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。中断在计算机多任务处理,尤其是即时系统中尤为重要。比如uCOS,FreeRTOS等。意义       中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程之间的切换 进入中断处理器自动保存现场到堆栈里{PC,xPSR,R0-R3,R12,LR}一旦入

【STM32】STM32学习笔记-GPIO输出(05)

00.目录文章目录00.目录01.GPIO简介02.GPIO基本结构03.GPIO位结构04.GPIO模式4.1输入浮空4.2输入上拉4.3输入下拉4.4模拟输入4.5开漏输出4.6开漏复用功能4.7推挽式输出4.8推挽式复用功能05.LED和蜂鸣器简介06.面包板07.附录01.GPIO简介GPIO(GeneralPurposeInputOutput)通用输入输出口可配置为8种输入输出模式引脚电平:0V~3.3V,部分引脚可容忍5V输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、

GRBL源码详解步进电机的算法学习笔记(STM32)一篇带你学完GRBL算法初版

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档GRBL源码中步进电机的算法学习笔记(STM32)前言GRBL源码中算法部分的学习是我在公司研发激光切割机(三轴)期间研究的一套关于步进电机驱动控制的常见算法,以下内容都以激光切割机来举例,话不多说直接上干货。(以下内容皆为个人理解,如有错误可以在评论区揪出,希望大家一同讨论,共同进步)一、简看GRBL的工作流程对于一台激光切割机来说,当你想要雕刻一个圆第一步:(将指令或图片G代码通过串口发送给MCU)首先从上位机LaserGRBL/lightburn软件解析想要雕刻的圆,然后上位机将解析后的数据通过串口发送给MCU,MCU判断串