草庐IT

基于STM32F103C8T6使用Arduino IDE编程闭环控制4个带编码器的有刷直流电机

题记:标题有点长了,纯粹为了方便被检索到~~~本贴主要用于支持南方科技大学SDIM学院工业设计专业大三综合项目移动底盘学习,也是我自己按照费曼学习方法的一次尝试,用从底层搭建一个机器人底盘来复习自动控制原理。    由于工业设计专业没有开设嵌入式课程,多数同学不具备使用Keil或STM32CubeIDE的基础。鉴于Arduino开发的友好性(主要是参考资料多),特使用支持Arduino环境的STM32F103C8T6作为底盘控制核心。已经会使用stm32单片机的同学推荐直接使用官方推荐的编程方式,Arduino的性能和资源丰富性确实不如CubeIDE。   言归正转,以下是一些项目设计解读:1

STM32——ADC

一、ADC原理    ADC——AnalogtoDigitalConverter,即模数转换器,是将连续的模拟信号转换为离散的数字信号的器件。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。它的一般工作过程为:采样——保持——量化——编码。1、采样与保持        采样:由于模拟信号是连续的,数字信号是离散的,因此我们需要对模拟信号按照一定的采样频率进行采样得到离散的信号。那么采样频率是多少呢?根据采样定理:设采样频率为fs,输入的模拟信

STM32通用输入输出端口GPIO(IO口)

1.GPIO口的概念1.1概念IO口:通用输入输出端口,通过软件控制其输入输出,STM32芯片的GPIO引脚与外部设备连接起来,从而可以实现与外部的通信,控制以及数据采集的功能;输出模式下,可控制端口输出高低电平,用于驱动LED,蜂鸣器,模拟通信协议输出时序等;当控制功率较大的设备可以加入驱动电路;输入模式下,可读取端口的高低电平或电压,用于读取按键输入,外接模块电平信号输入,ADC电压采集,模块通信协议接收数据等;每个IO口有俩个32位的配置寄存器(CPIO_CRL低位,GPIO_CRH高位),俩个数据寄存器,一个位置位/复位寄存器,一个16位的复位寄存器,一个32位的锁定寄存器;*GPIO

STM32移植工程教程 包括解决Keil 一些常见的错误等等

1.确定你移植的工程 1.1这里随便找了一下别人代码中的超声波传感器工程为例,其他同理。1.2打开HARDWARE文件夹1.3复制这个HC-SR04(超声波的代码),到你工程的HARDWARE文件夹里面,这里以OLED实验为例然后打开Keil 2.添加.c文件点击这个按钮,点击HARDWARE,AddFiles,找到刚刚复制的HC-SR04这个文件,选择hc.c,add添加。   在左边的能看到即说明添加成功 3添加头文件路径3.1点击魔术棒,选择C/C++,打开includepaths 3.2点这里找到HC-SR04的文件夹,选择 出现如图则说明添加成功4解决常见的一些问题4.1 编译一下,

毕业设计 STM32的智能电表系统(源码+硬件+论文)

文章目录0前言1主要功能2硬件设计(原理图)3核心软件设计4实现效果5最后0前言🔥这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是🚩毕业设计STM32的智能电表系统(源码+硬件+论文)🥇学长这里给一个题目综合评分(每项满分5分)难度系数:3分工作量:3分创新点:4分🧿项目分享:https://gitee.com/sinonfin/sharing1主要功能本设计由STM32单片机核心板电路+交流电压

【正点原子STM32连载】 第四十二章 DS18B20数字温度传感器实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

1)实验平台:正点原子stm32f103战舰开发板V42)平台购买地址:https://detail.tmall.com/item.htm?id=6092947574203)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-340252-1-1.html#第四十二章DS18B20数字温度传感器实验本章,我们将介绍STM32F103如何读取外部温度传感器的温度,来得到较为准确的环境温度。我们将学习单总线技术,通过它来实现STM32和外部温度传感器DS18B20的通信,并把从温度传感器得到的温度显示在LCD上。本章分为如下几个小节:42.1DS18B20

STM32引脚PA15,PB3,PB4用做普通I/O口高低电平默认无法拉高拉低

STM32,这个MPU上电默认PB4PB3PA15这些引脚电平且无法正常拉高拉低。PB4,PA15为高电平,PB3为低电平。其实原因是:I/O口不能正常输出一般都是端口被复用了造成的。文章讲的这几个端口在单片机上电时默认就是复用的,JTAG相关的PA13,PA14,PA15,PB3,PB4引脚,禁用JTAG或SWD可以释放其中的一些引脚。这个就是复用功能 我们需要使用stlinkV2进行烧录所以使用,部分重映射。JTAG-DA失能,SW-DP使能;RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//重映射需要先使能AFIO时钟GPIO_Pi

STM32使用HAL库驱动DS18B20

1、STM32CubeMx配置IO口因为DS18B20是单总线,数据接收发送都是这根线,所以单片机配置为开漏上拉输出。2、定时器配置因为DS18B20对时序要求比较严格,建议用定时器延时获得微秒延时函数。总线为48M,分频48,获得1us定时时基。3、头文件#ifndef__DS18B20_H#define__DS18B20_H#include"main.h"//定义DS18B20相关命令#defineDS18B20_CMD_SKIP_ROM0xCC#defineDS18B20_CMD_CONVERT_T0x44#defineDS18B20_CMD_READ_SCRATCHPAD0xBEvoi

工训赛智能垃圾桶分类全流程代码分享(树莓派+stm32)

目录目录前言一、机械结构设计附机械部分图纸​编辑二、树莓派视觉识别1.数据集的制作(1)数据集处理部分 (2)数据集的优化2.数据集打标签建议(1)网站推荐(2)问题示例3.树莓派环境搭建部分(1) YOLOv5-Lite环境的部署4.具体Yolov5-lite算法部分(1)引入库部分(2)视觉识别主要部分代码(3)树莓派控制舵机部分代码三、淘晶池串口屏通讯代码四、stm32部分代码1.UART通讯部分函数 前言本人有幸参加活动2023年10月的“联通杯”江苏省工程实践与创新能力大赛,即中国大学生工训赛江苏省省赛。我组在初赛时十中八(识别成功率100%,但是由于我们在机械结构方面考虑不佳导致垃

GY56 红外激光测距传感器 (内附STM32、MSP432代码)

文章目录一、GY56简介1.概述2.特点3.参数4.引脚说明5.应用二、通信协议1.串口2.IIC协议三、模块使用方法四、GY56上位机五、STM32驱动代码六、MSP432驱动代码一、GY56简介1.概述GY-56是一款低成本数字红外测距传感器模块。工作电压3-5v,功耗小,体积小,安装方便。其工作原理是,红外LED发光,照射到被测物体后,返回光经过MCU接收,MCU计算出时间差,得到距离。直接输出距离值。此模块,有两种方式读取数据,即串口UART(TTL电平)+IIC(2线)模式,串口的波特率有9600bps与115200bps,可配置,有连续,询问输出两种方式,可掉电保存设置。GY-56