草庐IT

HAL_GPIO_WritePin

全部标签

STM32HAL库驱动数码管

本文档创建于2023年3月7日本文记录了我学习数码管驱动的过程,实际是微机原理课上留的一个作业。本文作者:RobotFreak本文参考《NANO_STM32F103开发指南-HAL库版本_V2.0》,正点原子官网可下载。数码管驱动原理数码管,也称LED数码管,按发光二极管单元连接方式可分为“共阳极数码管”和“共阴极数码管”。我们使用的正点原子NANOSTM32F103开发板板载的数码管为四位共阴极数码管,实物图于内部引脚图如下:共阳极数码管是指将所有发光二极管的阳极接到一起,而共阴极数码管则是发光二极管的阴极连到一起,连接方式如下:从上图可以看到,数码管为共阴时,当某一字段的发光二极管阳极为高

HAL_TIM_Base_Start_IT和 HAL_TIM_Base_Start 区别

HAL_TIM_Base_Start_IT函数启动定时器并开启中断,在定时器计数器溢出时,会触发中断。这个函数主要用于周期性地执行某个任务。在函数调用之后,定时器会开始工作,并且会在每个计数器周期结束时触发一个中断请求。HAL_TIM_Base_Start函数仅仅是启动定时器而已,不会开启中断,因此不会在计数器溢出时触发中断。这个函数主要用于需要通过软件查询计数器的值来判断时间的应用场景,例如精确的延时控制等。在函数调用之后,定时器会开始工作,但不会自动触发任何中断请求。因此,两者的区别在于是否开启中断,以及是否适用于周期性任务。如果需要周期性地执行某个任务,可以使用HAL_TIM_Base_

STM32HAL库学习笔记(一)——GPIO

一、基础知识GPIO全名为GeneralPurposeInputOutput,即通用输入输出。有时候简称为“IO口”。通用,说明它是常见的。输入输出,就是说既能当输入口使用,又能当输出口使用。端口,就是元器件上的一个引脚。输入模式和输出模式是GPIO的基本特性,当然GPIO还有其它模式可选。IO耐压问题STM32是一款3.3V电压的芯片,IO输出是3.3V,但IO大部分都是可以容忍5V电压输入。一般在芯片手册的“引脚定义”章节可以查看到有FT标识表示该IO可以容忍5V电压输入。二、在HAL库中的GPIO的模式1、输入模式GPIO_Input    上拉或下拉输入(GPIO Pull-up/Pu

STM32的GPIO操作(寄存器&HAL)

(注:此为乐某学习记录,若有出错的地方欢迎各位指出!)前言本人使用的开发板的芯片是STM32H743XIH6,所以外设也是根据此芯片来介绍。在使用HAL库配置的时候,需要安装STM32CubeMX。此软件可在ST官网下载,剩下的安装步骤比较简单,不会单独出篇进行讲解。STM32CubeMX下载网址:https://www.st.com/zh/development-tools/stm32cubemx.html一、什么是GPIO?可以做什么?GPIO是General Purpose Input/Output的简写,翻译为通用输入/输出。在STM32里是可以对其进行控制或读取的引脚,通俗点讲,可以

java - 硬件支持 HAL 太慢,只能写入 720 帧中的 0

有人可以解释一下为什么我一直在androidstudio中收到这个警告吗?这很烦人,因为它填满了整个日志,然后要搜索我必须不断滚动的内容。即使我选择“仅显示选定的应用程序”,此警告仍会继续显示。我正在使用默认的Android模拟器来测试我的应用程序。01-1515:51:13.3041338-1361/?W/audio_hw_generic:HardwarebackingHALtooslow,couldonlywrite0of720frames...01-1515:51:14.3241338-1361/?W/audio_hw_generic:HardwarebackingHALtoos

Zynq-7000、国产zynq-7000的GPIO控制(一)

Zynq-7000系列GPIO排布如下图所示,著名手册ug585第14章,第一个图,这图很清晰的表明,一共54个MIO,64个EMIO,所有这些IO共分为4个bank,其中Bank032bit —>>MIO[0:31]Bank122bit —>>MIO[32:53]Bank232bit —>>EMIO[0:31]Bank332bit —>>EMIO[32:63]看懂这个很重要。后面的驱动都是根据这个来设计的。使用SDK控制GPIO主要函数说明初始化GPIO驱动 /*InitializetheGPIOdriver.*/ ConfigPtr=XGpioPs_LookupConfig(GPIO_DE

嵌入式2. 深刻理解GPIO(上拉输入、下拉输入、模拟输入、浮空输入,开漏输出,推挽输出)

目录前言GPIO是什么GPIO的八大模式输入模式浮空输入上拉输入下拉输入模拟输入输出模式开漏输出推挽输出复用开漏输出复用推挽输出GPIO的输出速率前言学习了这么久的单片机,说来羞愧,直到写这篇文章之前,我都没有仔细去理解GPIO的八种使用模式,之前只是傻傻的用着,直到把模电,数电学完,到今天重新回顾了一遍这一个知识,发现自己终于看懂了之前没有理解透彻的知识,特此总结下来。GPIO是什么从最基础的51单片机,Arduino,到STM32,树莓派等等,这些上面都会有GPIO口这么一个概念,如果你点开了我这个博客,说明你大概率开始学习单片机,那么你应该了解的就是这些口可以输出高低电平,或者是读取引脚

开源!自制一个桌面宠物(STM32CUBEMX HAL库 PWM波 小项目)

原视频:好,自制一个桌面宠物!_哔哩哔哩_bilibili基础所需:基础电路认识,C语言,STM32开发,CUBEMX和Keil开发(重要),一点点艺术细胞。CAUTION:本文重点在代码部分的开源,是基于HAL库。硬件手工部分不出教程(没必要)可以直接看视频P2。硬件配置:主控:STM32F103C8T6粉色沉金板舵机:SG90*4屏幕:1.3寸OLED(IIC驱动)供电:锂电池(3.7V800mah)+锂电池充放电模块(不会自动断电,适配3.7V锂电池)蓝牙:低功耗蓝牙(BLE,串口透传,便宜又好用)软件配置:手机app开发:appinventor制作(这里不附教程,因为我也不熟,唯一有用

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

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

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