草庐IT

STM32F103RC

·多参考手册·协议USART、I2C、SPI嵌入式系统跟ARM处理器嵌入式系统:专用计算机系统,以应用为中心,软硬件可裁减组成:硬件:(MPU)微处理器、存储器、I/O接口、输入输出设备。软件:EmbeddedRTOS、应用软件。最小系统:微控制器(MCU)、微处理器(MPU)、电源模块、时钟模块(如心脏)、复位电路、Flash(闪存,存储程序和数据,掉电后数据不会丢失)、RAM(随机访问的存储器,存放程序运行过程中产生的临时数据,安排用户数据(主要是全局变量)和堆栈空间)、JTAG(烧录)。外设:USB、LCD、键盘、以太网、串口、CAN、传感器、辅助存储器、电机软件结构:不带OS(操作系统

复刻stm32平衡小车(适合入门)

目录前言:1.硬件部分1.1STM32最小系统1.2电源1.3TB6612电机驱动模块1.4串口通信1.5OLED模块1.6蓝牙模块1.7LED灯模块 1.8MPU6050模块​编辑1.9硬件焊接与调试1.10组装2.软件部分2.1代码2.2逻辑实现2.2.1control.c2.2.2usart.c结尾前言:本文主要为复刻b站up主开源的平衡小车以及自己的学习过程,其中加入自己踩过的坑以及以及对该项目的理解,复刻这个项目的原因一来是自己希望能够通过做点小玩具加深对stm32的理解同时获得一点成就感让自己坚持走下去,二来是因为这个up主设计的太好看辣!!!,下面是教程希望对大家有一点帮助!!有

汇总:STM32头文件和路径添加,但仍然找不到头文件函数问题!!!

一.如果添加一个普通的.c或者.h文件(非标准库文件),按照以下步骤即可1.直接添加,这一步很简单 2.然后添加路径:这一步应该也都会 大家问题也应该不大 不过有一些注意事项: 如果工程中有中文路径,keil是无法识别中文路径的,需要修改为英文路径。如果工程中的路径存在数字开头,则keil无法识别该路径,需要修改为以英文字符开头。如果修改了工程中的文件夹名,则需要重新将文件夹包含到工程中。以上步骤应该可以解决70%的问题了,这次我在移植一个STM32标准库的时候,预到了以下问题 明明已经添加了文件,为什么还有错误,后来通过摸索,还要有以下步骤2.添加一个文件,文件中包含了一些标准库文件,首先,

STM32----MPU6050

前言:最近几个月没有写文章了,因为这学期的事情真的有点多,但是想了想,文章还是要更新,总结自己学习的知识,真的很重要!!!废话不多说,正文开始:1.MPU6050的简介MPU6050是InvenSense公司推出的全球首款整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了安装空间。MPU6050内部整合了3轴陀螺仪和3轴加速度传感器,并且含有一个第二IIC接口,可用于连接外部磁力传感器即AUX_CL和AUX_DA,并利用自带的数字运动处理器(DMP:DigitalMotionProcessor)硬件加速引擎,通过主IIC接口,向应用端输出完整的9轴融合演

【宝藏系列】STM32之C语言基础知识

【宝藏系列】STM32之C语言基础知识文章目录【宝藏系列】STM32之C语言基础知识1️⃣位操作2️⃣define宏定义3️⃣ifdef条件编译4️⃣extern变量声明5️⃣typedef类型别名C语言是单片机开发中的必备基础知识,本文列举了部分STM32学习中比较常见的一些C语言基础知识1️⃣位操作下面我们先讲解几种位操作符,然后讲解位操作使用技巧。C语言支持以下六种位操作:下面,重点讲解一下位操作在单片机开发中的一些实用技巧。在不改变其他位的值的状况下,对某几个位进行设值这个场景在单片机开发中经常使用,方法就是我们先对需要设置的位用&操作符进行清零操作,然后用|操作符设值。比如,我要改变

STM32驱动ADS1256串口输出-AD转换

STM32驱动ADS1256串口输出-AD转换ADS1256ADS1256简介芯片特点引脚说明模块相关寄存器与命令相关程序初始化实验效果接线实验现象ADS1256ADS1256简介ADS1256是TI推出的一款微功耗、高精度、8通道、24位高性能模数转换器。该芯片还带有4个可编程的I/O口、输入缓冲器和可编程增益放大器等,芯片本身可以测量0-5v的信号,高电压采集可以通过把信号分压成0-5v的范围内再给模块输入,所以ADS1256可以采集市面上大多数的标准电压信号。芯片特点8通道输入可采集单端信号与差分信号最高30KSPS的采样率4个可编程I/O0-5V信号输入引脚说明这个引脚说明关联本文开头

STM32H750驱动ADC的一些知识与经验

1、ClockPrescaler:*ADC预分频系数选择。*可选的分频系数为1、2、4、6、8、10、12、16、32、64、128、256。*但是请记住,ADC的最大时钟为36MHZ不管是定时器触发还是软件触发!!2、Resolution:*ADC的分辨率。*可选的分辨率有16位、12位、10位和8位*16位时需要消耗8.5个ADC时钟周期*14位时需要消耗7.5个ADC时钟周期*12位时需要消耗6.5个ADC时钟周期*10位时需要消耗5.5个ADC时钟周期*8位时需要消耗4.5个ADC时钟周期3、ScanConvMode:*配置是否使用扫描。*如果是单通道转换使用ADC_SCAN_DISA

STM32使用内部参考电压提高ADC采集准确度

我们在使用ADC采集外部电压时,一般默认参考电压为MCU的供电电压,例如单片机供电电压为3.3V时,我们计算采集电压的公式为:假设12位ADC采集电压=(AD值/4096)*3.3;但是如果因为某些原因导致的供电不稳定,而我们任然按照3.3V计算,ADC采集计算出来的电压就会出现误差。在STM32手册中关于ADC的介绍中提到使用内部参考电压计算实际的VDDA电压。使用内部参考电压计算实际的VDDA电压:施加给微控制器的VDDA电源电压可能会有变化,或无法获得准确值。在制造过程中由ADC在VDDA=3.3V的条件下获得的内置内部参考电压(VREFINT)及其校准数据可用于评估实际的VDDA电压。

STM32——TIM简介与TIM中断

文章目录一、TIM简介二、定时器类型基本定时器通用定时器高级定时器三、定时中断基本结构四、时序图预分频器时序计数器时序计数器无预装时序计数器有预装时序RCC时钟树五、定时器定时中断六、定时器外部时钟七、定时器库函数(tim.h)一、TIM简介TIM(Timer)定时器定时器可以对输入的时钟(方波)进行计数,并在计数值达到设定值时触发中断输入时钟:内部时钟,外部时钟对输入的时钟进行计数就是计时每个定时器都具备的3个核心:16位计数器【寄存器】16位预分频器【对计数器时钟分频】16位自动重装寄存器【计数的目标值】3个核心组成时基单元在72MHz时钟下可以实现最大59.65s(65536*65536

STM32系列(HAL库)——F103C8T6驱动WS2812全彩RGB模块(PWM+DMA方式)

1.软件准备(1)编程平台:Keil5(2)CubeMX2.硬件准备(1)某宝买的RGB模块(4个灯珠级联)(2)F1的板子,本例使用经典F103C8T6(3)ST-link 下载器(4)杜邦线若干3.模块资料(1)模块简介:没什么比手册讲得更加清楚了,模块中文数据手册:ws2812b中文资料_数据手册_参数(2)驱动原理:         以上这是数据手册中提到的,WS2812驱动用的是单线归零码的通讯方式。不同占空比的方波代表1码或者0码,这里不同的占空比就是 0码或1码高电平时间/方波周期时间。对于本次例程,我们就是改变PWM的占空比实现0码或1码的传输。(3)PWM+DMA原理: