草庐IT

转帖:STM32 GPIO 配置之ODR, BSRR, BRR 详解

原贴地址https://www.cnblogs.com/prayer521/p/5850803.html用stm32的配置GPIO来控制LED显示状态,可用ODR,BSRR,BRR直接来控制引脚输出状态.ODR寄存器可读可写:既能控制管脚为高电平,也能控制管脚为低电平。管脚对于位写1gpio管脚为高电平,写0为低电平BSRR只写寄存器:[color=Red]既能控制管脚为高电平,也能控制管脚为低电平。对寄存器高16bit写1对应管脚为低电平,对寄存器低16bit写1对应管脚为高电平。写0,无动作BRR只写寄存器:只能改变管脚状态为低电平,对寄存器管脚对于位写1相应管脚会为低电平。写0无动作。刚

基于STM32+OneNet设计的物联网智能鱼缸(2023升级版)

基于STM32+OneNet设计的智能鱼缸(升级版)一、前言随着物联网技术的快速发展,智能家居和智能养殖领域的应用越来越广泛。智能鱼缸作为智能家居和智能养殖的结合体,受到了越来越多消费者的关注。本项目设计一款基于STM32的物联网智能鱼缸,通过集成多种传感器和智能化控制模块,实现鱼缸环境的智能化监控和调节,提高观赏鱼的养殖体验和观赏性。该智能鱼缸具备增氧、换水、恒温、PH值检测、浑浊度检测、氛围灯和LCD显示屏等多种功能,同时支持远程控制和数据上传至云平台。通过手机端或电脑端的可视化页面,用户可以方便地了解鱼缸的情况,并实现对鱼缸的远程控制。智能鱼缸的出现,不仅可以提供更加智能化、便捷化的养殖

STM32 ADC数模转换器

STM32ADC数模转换器ADC简介ADC(Analog-DigitalConverter)模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁STM32主要是数字电路,数字电路只有高低电平,没有几V电压的概念,所以如果想读取电压值,就需要借助ADC模数转换器来实现了,ADC读取引脚上的模拟电压,转换为一个数据,存在寄存器里,我们再把这个数据读到变量里来,就可以进行显示、判断、记录等等操作了,ADC可以将模拟信号转换为数字信号,是模拟电路到数字电路的桥梁。DAC,数字模拟转换器,使用DAC就可以将数字量转化为模拟电压;PWM也可以作为数字

Stm32解决按键长按与短按

Stm32解决按键的长按和短按废话不多说,直接上干货注意:本文是采用Stm32HAL库编写,可以移植成库函数,其原理是相同的!!!!第一步:首先在key.h定义几个变量/按键的键值#defineKEY1_Press1#defineKEY2_Press2#defineKEY3_Press3#defineKEY4_Press4/读取IO口的电平#defineKEY1HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)#defineKEY2HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)#defineKEY3HAL_GPIO_ReadPin(GPIOB,GPIO_

STM32机器人控制开发教程No.4 使用串口通信控制电机(基于HAL库)

在机器人控制中,单片机(Arduino/STM32)与上位机(RaspberryPi/NVIDIAJetsonnano)之间的通信经常采用串口通信的方式,那应该如何使用STM32的串口通信以及根据自己定义的协议来完成数据的接收与发送呢?在本篇文章中将给你演示如何通过自定协议来完成对电机的控制以及获取编码器的值,跟着我们的配置步骤,你会发现一切如此的简单!本篇文章依旧采用我们的机器人控制板进行开发,关于电机的相关配置以及驱动代码可以参考前面的文章,本文着重介绍串口通信部分!1确定串口的数据协议'e'反馈两个电机的编码器脉冲计数值,该计数值达到最大值或最小值时自动清零。'm'l_speedr_sp

STM32的HAL库SPI操作(master 模式)-根据时序图配置SPI

SPI相关基础知识SPI基本概念请自行百度,参考:百度百科SPI简介.我们讲重点和要注意的地方。master模式下要关注的地方接线一一对应也就是说主控的MISO,MOSI,SCLK,[CSn]分别和设备的MISO,MOSI,SCLK,[CSn]一一对应相连,不交叉,不交叉,不交叉…(重要的事情说三遍)。从设备的时序图这是无线模块CC2500的SPI接口时序,这里可以看到,从设备要求,1、时钟空闲时为低电平;2、数据在时钟下降沿跳变,上升沿稳定,第1个沿为数据采样点;3、高位先发送;4、数据长度8位;这是AD7192的SPI接口时序,这里可以看到从设备要求,1、时钟空闲时为高电平;2、数据在时钟

STM32循迹避障小车(颜色识别)

文章目录一、概要二、硬件设备1、循迹模块2、超声波模块3、openmv4、L298n四、实现原理五、代码部分一、概要主控采用stm32F103C8T6,三个循迹模块,超声波模块,openmv,降压模块,锂电池组,TT马达四个,L298n。可以实现循迹,避障,颜色识别等功能。二、硬件设备1、循迹模块红外循迹模块通常包含一组红外线发射管和一组红外线接收器,发射管发出红外线,接收器接收地面反射的红外线信号。当小车在黑线上行驶时,黑线会吸收一部分红外线,接收器接收到的信号会变弱,当小车在白线上行驶时,反射的红外线信号比较强,接收器接收到的信号强度也比较高。2、超声波模块超声波模块是一种使用超声波进行测

STM32 TIM PWM高阶操作:刹车及状态约束

STM32TIMPWM高阶操作:刹车及状态约束刹车及状态约束是STM32TIMPWM控制里面比较复杂的一部分,涉及到PWM波形产生前,中,后的管脚状态输出。这里先引入两个描述,一个是“半高阻”,意思是STM32管脚输出高阻时,内部的上拉或者下拉设置仍然有效。一个是“全高阻”,意思是STM32管脚输出高阻时,内部上拉或者下拉也被断开,是完全的高阻态输出。STM32PWM刹车特性所谓刹车(Break,Shut-Down)是指在PWM信号输出过程中,接收到触发信号,停止PWM信号的输出。而PWM信号停止之前之后输出什么状态,则是需要明确设定,避免负载端出现异常。而刹车以及再出发也有相应的控制机制。刹

STM32读写内部Flash

参考:https://blog.csdn.net/Caramel_biscuit/article/details/131925715参考:https://blog.csdn.net/qq_36075612/article/details/124087574?spm=1001.2014.3001.5502目录内存映射内部Flash的构成对内部Flash的写入过程查看工程内存的分布ROM加载空间STM32读写内部Flash代码读/写入数据流程Flash解锁擦除扇区写数据操作读数据操作再次上锁简单的小例程代码实现内存映射stm32的flash起始地址为0x08000000,结束地址为0x080000

PCAP01介绍和STM32模拟SPI驱动

一.芯片介绍Pcap01是德国acam公司设计的一款革命性的电容测量芯片。该芯片内部有DSP计算单元,可以直接将电容元件接到Pcap01芯片,然后芯片计算出容值大小,通过SPI总线将电容容值数据传送给CPU,电容测量完全数字化。二,测量原理PCAP测量的原理是基于电容的充放电时间比。PCAP01有8个通道,每一个通道都可以读取相对应的电容充放电时间比,当我们把PC0通道的电容值确定后,再通过这个比值,就可以计算出相对应的电容。三.硬件设计下图是PCAP01芯片的引脚定义PC0到PC7为8个测量通道,接电容。此外PCAP01还有测量温度的功能,不过笔者暂时没有用到。电容的理解方式有两种,一种为漂