草庐IT

GPIO_ResetBits

全部标签

STM32使用DMA实现GPIO的高速翻转

STM32使用DMA实现GPIO的高速翻转一、前言二、原理三、配置IO口四、配置DMA五、程序内容5.1gpio配置5.2keil中添加`.C`和`.h`文件(需要DMA发送控制GPIO的数组波形文件)==如不想这么麻烦的可以略过,在main函数中定义一个数组即可,因为我的数组太大了,而且为了方便更改,故单独存了一个文件==5.3DMA实现GPIO的高速翻转代码实现==(memorytomemory模式)==5.4输出结果总结一、前言接着上一篇博客的内容,上一篇博客实现了定时器输出pwm,这次我们使用DMA来驱动gpio高速翻转,来探索一下stm32h750的gpio翻转极限二、原理这里大家可

STM32 GPIO模拟i2c通信实现sht20的温湿度采样 并以JSON格式上报(串口调试助手为例)

一、先了解I2C协议由时钟线SCL和数据线SDA构成的通信线路,利用上拉电阻将它们拉成高电平(表示总线空闲)    I2C总线可以有多个从设备,且每个从设备都有一个唯一的7bit地址物理识别,因为I2C地址全0为广播地址,所以I2C总线理论上最多能带2^7-1=127个从设备(I2C:半双工通信的同步串行通信协议,采用电平信号,数据传输采用大端方式MSB,先发高位数据)I2C总线通信时序:I2C协议的起始信号(start):当SCL保持高电平时,SDA出现一个下降沿,产生起始位I2C协议的停止信号(stop):当SCL保持高电平时,SDA出现一个上升沿,产生停止位(停止通信后,总线空闲,处于高

【正点原子FPGA连载】第二十六章gpio子系统简介 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南

1)实验平台:正点原子MPSoC开发板2)平台购买地址:https://detail.tmall.com/item.htm?id=6924508746703)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-340252-1-1.html第二十六章gpio子系统简介上一章我们编写了基于设备树的LED驱动,但是驱动的本质还是没变,都是配置LED灯所使用的GPIO寄存器,驱动开发方式和裸机基本没啥区别。在驱动程序用到了GPIO就直接去读写GPIO相关的寄存器,这样会引发一个问题,大家有没有想过,如果另外一个驱动工程师写了一个驱动也用到这个相同的管脚,那么

【STM32】GPIO输出

1 GPIO简介(1)GPIO(GeneralPurposeInputOutput)通用输入输出口(2)可配置为8种输入输出模式(3)引脚电平:0V~3.3V,部分引脚可容忍5V(可以输入5V,但是输出还是3.3V)I/O口电平带FT是可以接受输入5V(4)输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等(5)输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等1.1GPIO的基本结构在STMB2中,所有的GPIO都是挂载在APB2外设总线上的。其中GPIO外设的名称是按照GPIOA、GPIOB

【STM32】GPIO的工作原理和配置

目录一、GPIO是什么?二、GPIO的8种工作模式1.浮空输入模式(GPIO_Mode_IN_FLOATING)2.上拉输入模式(GPIO_Mode_IPU)3.下拉输入模式(GPIO_Mode_IPD)4.模拟输入模式(GPIO_Mode_AIN)5.开漏输出模式(GPIO_Mode_Out_OD)6.开漏复用输出模式(GPIO_Mode_AF_OD)7.推挽输出模式(GPIO_Mode_Out_PP)8.推挽复用输出模式(GPIO_Mode_AF_PP)三、GPIO寄存器1.GPIO端口模式寄存器(GPIOx_MODER)2.GPIO端口输出类型寄存器(GPIOx_OTYPER)3.GPI

Linux驱动开发之【pinctrl和gpio子系统】

目录一、 pinctrl和gpio子系统1.pinctrl子系统1.1pinctrl子系统简介1.2pinctrl子系统驱动1.3设备树中添加pinctrl节点模版2.gpio子系统2.1gpio子系统简介2.2gpio子系统驱动2.3gpio子系统API函数2.4设备树中添加gpio节点模板2.5与gpio相关的OF函数3.驱动程序编写3.1驱动入口函数3.2驱动出口函数一、 pinctrl和gpio子系统Linux是一个庞大而完善的系统,尤其是驱动框架,像GPIO这种最基本的驱动不可能采用“原始”的裸机驱动开发方式。Linux内核提供了pinctrl和gpio子系统用于GPIO驱动,Lin

STM32 寄存器配置笔记——GPIO配置输出

一、概述    本文主要介绍GPIO作为输出时的寄存器配置。包括时钟配置,输出模式配置。以STM32F10xxx系列为例,配置PA8、PD2端口作为输出,输出高/低电平。二、配置流程    1)GPIO外设时钟     通过查找STM32F10xxx中文参考手册得知,GPIOPORT口的时钟配置在RCC_APB2ENR寄存器的第2~6位,如下图:使能PORTA和PORTD的时钟:RCC->APB2ENR|=1APB2ENR|=1   2) 配置GPIO模式   PORTA的PIN8和PORTD的PIN2配置为通用推挽(PP)输出模式,GPIO速度配置为50MHZ。CRL寄存器配置的是PIN0~

GPIO(嵌入式学习)

GPIO知识学习1.GPIO的基本概念2.GPIO的实际应用3.功能描述3.1IO结构框图3.2知识铺垫模拟/数字信号VDD、VSS、VCC施密特触发器片上外设3.3功能详述浮空输入上拉输入下拉输入模拟输入开漏输出推挽输出4.GPIO相关寄存器4.1寄存器4.2功能1.GPIO的基本概念GPIO是英文GeneralPurposeInput/Output的缩写,中文翻译为通用输入/输出。它是一种在数字电子系统中常见的接口类型,用于与外部设备进行通信和控制。GPIO接口可以作为输入或输出引脚使用。作为输入引脚时,GPIO可以接收来自外部设备的电信号,并将其转换为数字信号,供系统内部使用。作为输出引

2023-03-29 linux 驱动用gpiod来控制gpio,devm_gpiod_get_optional gpiod_get_index gpiod_to_irq等的使用,带实例

一、gpiod子系统是新版的linux内核引入的控制gpio的子系统,这个子系统的功能更为强大,在很多地方都会碰到,在工作过程中尽量使用gpiod子系统,很有必要学习一下。二、Linux内核GPIOD介绍文档 kernel\Documentation\gpio\consumer.txt,kernel/include/linux/gpio/consumer.h包含下面的函数#ifndef__LINUX_GPIO_CONSUMER_H#define__LINUX_GPIO_CONSUMER_H#include#include#includestructdevice;/***Opaquedescri

在ZYNQ-Linux下操作GPIO和VDMA

目录1.概述2.GPIO操作2.1确定编号2.2初始化2.3操作GPIO3.VDMA操作3.1设置VDMA3.2VDMA操作代码4.结语1.概述此前的文章介绍如何利用petalinux定制ZYNQ-Linux操作系统。当ZYNQ-Linux系统搭建完毕后,需要在这个系统上开发应用程序以完成特定任务,这里面就涉及到如何在ZYNQ-Linux系统上去操作系统硬件资源的问题。目前,网上介绍的比较多的是需要改写Linux操作系统底层的设备树,并编写设备的驱动程序,这样的好处是可以提供一个统一的硬件接口,做到软硬件分离,可以更好地去保护硬件资源,但是实际操作对于初学者来说比较复杂。本文将介绍一种简单的操