gpio

OPENMV CAM H7(M4) GPIO控制

↘锁芯ラ 提交于 2020-03-11 16:55:11
5.1.2. GPIO控制 OpenMV具有 9个 (OpenMV M4) 到10个 (OpenMV M7) 板载通用I / O引脚 , 用于与现实世界交谈。我们可能 会保持这个数量,以保持OpenMV Cam微小 。 无论如何,有几种方法可以使用GPIO引脚。 5.1.2.1. 作为输入 要使用GPIO引脚作为输入,只需要: import pyb p = pyb.Pin("P0", pyb.Pin.IN) p.value() # Returns 0 or 1. 该 pyb.Pin() 构造函数创建一个pin对象,您将用它来控制你的OpenMV的I / O引脚。 你传递给OpenMV凸轮该字符串应该是 P ,然后OpenMV M4为 0-8 和 OpenMV M7为 0-9 。 一旦你创建了GPIO引脚,使用该 pyb.Pin.value() 方法来获得IO引脚的状态。 最后,如果 需要上拉或下拉IO引脚, 传递 pyb.Pin.PULL_UP 或 pyb.Pin.PULL_DOWN 作为 pyb.Pin() 构造函数的附加参数 : p = pyb.Pin("P0", pyb.Pin.IN, pyb.Pin.PULL_UP) 5.1.2.2. 作为输出 现在,要使用 GPIO引脚作为输出 ,只需要: import pyb p = pyb.Pin("P0", pyb.Pin.OUT

蓝桥杯嵌入式第十届省赛程序

最后都变了- 提交于 2020-03-11 14:00:34
第十届赛题程序部分较为简单,客观题相对较难。主要会用adc+led即可ok,本科组甚至没有用到EEPROM(本代码加入此功能将led灯信息,上下阈值存入EEPROM,reset后数据不丢失) 先看目录 初始化函数 头文件: 初始化程序 #include "stm32f10x.h" #include "lcd.h" #include "init.h" #include "i2c.h" void GPIO_Int(void) { GPIO_InitTypeDef GPIO_InitStructure; ADC_InitTypeDef ADC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC| RCC_APB2Periph_GPIOD, ENABLE); //led GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10| GPIO_Pin_11 | GPIO_Pin_12| GPIO_Pin_13 | GPIO_Pin_14| GPIO_Pin

STM32的GPIO的寄存器配置学习1

对着背影说爱祢 提交于 2020-03-09 16:24:06
本篇文章主要是学习以M3内核的STM32的GPIO的寄存器的配置,为什么要学习寄存器,而不利用库函数呢?我只能说为了让学的知识更加牢固吧!当然,你可以直接去利用库函数,但是如果你能认真读完本篇博客,你会对知识豁然开朗!加油吧! STM32 的每个 IO 端口都有 7 个寄存器( 如果还不懂寄存器是什么,请点击 )来控制。他们分别是: 配置模式的 2 个 32 位的端口配置寄存器 CRL 和 CRH ; 2 个 32 位的数据寄存器 IDR 和 ODR ; 1 个 32 位的置位/复位寄存器BSRR ; 一个 16 位的复位寄存器 BRR ; 1 个 32 位的锁存寄存器 LCKR ;这里我们仅介绍常用的几个寄存器,我们常用的 IO 端口寄存器只有 4 个:CRL、CRH、IDR、ODR 。 可能罗列了这么多的寄存器,小白可能会一头蒙(心想,用的时候再找呗,我想说,那还不如直接记住,对吧,哈哈哈)接下来我会每一个介绍一下,然后会有一个程序说明,仔细看完文章吧! 一、CRL、CRH STM32的每个 IO 口都可以自由编程,但 IO 口寄存器必须要按 32 位字被编辑被访问(因为系统本身是32位),CRL 和 CRH 控制着每个 IO 口的 模式 及 输出速率, 只不过 CRL 是 控制 低8位的GPIO接口( GPIO0至GPIO7 ); CRH 是 控制 高8位的GPIO接口(

stm32 嵌入式开发 用标准库进行 ADC 实验总结

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-09 10:00:04
------------恢复内容开始------------ 硬件原理图 ,滑动电位器与芯片PC3引脚连接 根据开发板可知: STM32F429IGT6 有 3 个 ADC ,每个 ADC 有 12 位、 10 位、 8 位和 6 位可选,每个 ADC 有 16 个外部通道。         每个ADC 同时还有3个内部通道:通道16/17/18         工作模式有3种: 独立模式、双重模式和三重模式 。 转换顺序可分为:规则序列,注入序列。如下图所示: 规则序列寄存器设置根据表由上到下选择通道进行配置 注入序列寄存器JSQR转换顺序为JSQR [X] [4:0],                   X=4-JL,JL为需要转换的通道 触发源可选择:ADC2_CR2->ADON        外部事件触发:内部定时器、外部IO (EXTSEL[2:0] JEXTSEL[2:0]控制 ) 时间设置: ADC 的输入时钟ADC_CLK由PCLK2经过分频产生36MH最大z频率 采样时间:每个通道可以设置不同的采样频率,最小的采样时间是3个周期1/ADC_CLK     ADC总转换时间= 采样时间+12个时钟周期 数据寄存器:ADC_DR 1个32位寄存器,最低16位有效。独立模式时使用,可以开启DMA模式       ADC_JDRX 4个32位寄存器,低16位有效    

STM32外部中断函数

岁酱吖の 提交于 2020-03-06 16:35:23
STM32外部中断函数 在外部中端的 exti.h 文件中 # ifndef _EXTI_H # define _EXTI_H # include "stm32f10x.h" void EXTIX_Init ( void ) ; # endif 在外部中端的 exti.c 文件中 # include "exti.h" # include "led.h" # include "key.h" # include "delay.h" # include "usart.h" # include "beep.h" //外部中断 0 服务程序 void EXTIX_Init ( void ) { EXTI_InitTypeDef EXTI_InitStructure ; NVIC_InitTypeDef NVIC_InitStructure ; KEY_Init ( ) ; //①按键端口初始化 RCC_APB2PeriphClockCmd ( RCC_APB2Periph_AFIO , ENABLE ) ; //②使能 AFIO 时钟 //GPIOE.3 中断线以及中断初始化配置,下降沿触发 GPIO_EXTILineConfig ( GPIO_PortSourceGPIOE , GPIO_PinSource3 ) ; //③ EXTI_InitStructure . EXTI_Line =

STM32 CubeMX 学习:001-GPIO的使用

最后都变了- 提交于 2020-03-06 10:28:04
背景 在上一讲 STM32 CubeMX 学习:搭建开发环境 中,我们已经利用CubeMx搭建了可编译的工程。 今天就开始来介绍STM32 GPIO的有关知识,以及如何驱动它。 HOST-OS : Windows-10 STM32 Cube :v5.6 MCU : STM32F429 LIB : stm32cube_fw_f4_v1250 知识 在STM32中,GPIO有这些属性:输入、输出、复用功能;也可以设置速度,上下拉,推挽开漏等电器特性。 在 Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h 中有关于 GPIO属性的 定义。 /** * @brief GPIO Init structure definition */ typedef struct { uint32_t Pin; /*!< Specifies the GPIO pins to be configured. This parameter can be any value of @ref GPIO_pins_define */ uint32_t Mode; /*!< Specifies the operating mode for the selected pins. This parameter can be a value of @ref GPIO

7、uCOS-Ⅱ 信号量

时光怂恿深爱的人放手 提交于 2020-03-05 23:06:06
1、“信号量”为操作系统用于处理临界区问题和实现进程间同步提供了一种有效的机制。 在很多操作系统原理书中都提到了信号量的概念,常用P操作与V操作来表明信号量的行为。 PV操作的伪代码如下: 设s为一整数型变量: P操作:while( s==0); s--; V操作:s++ 2、例程代码 1 /***************************************************************************************************************************** 2 * 3 * 文件名称:main.c 4 * 文件功能:主函数 5 * 文件说明:无 6 * 7 *****************************************************************************************************************************/ 8 /********************************************************** 9 * 10 * 头文件声明 11 * 12 **********************************************************/ 13 14

关于单片机的GPIO的模式

给你一囗甜甜゛ 提交于 2020-03-05 11:58:30
GPIO的输入模式 这里描述的是STM的MCU,其他的MCU自己举一反三 输入浮空:既不上拉,也不下拉,呈现的是高阻态; 输入上拉:上拉(高电平) 输入下拉:下拉(低电平) 模拟输入:一般用来做ADC的读取 GPIO的输出模式 开漏输出 开漏复用功能 推挽式输出 推挽式复用功能 STM32系列有开漏复用功能和推挽式复用功能,就是开漏输出和推挽式输出模式多了IO发复用的功能,这里我详细介绍下比较常用的开漏输出和推挽式输出,介绍这两个模式之前,先复习下MOS管的知识 总结一下,MOS管做开关的要求: 1.输入端到输出端的方向必须与寄生二极管导通的方向相反,否则是起不来开关的作用的; 2.|Ugs|>|Ugs(th)| Ugs(th)指的是G极的阈值电压,详细的数据可以在对应的数据手册上看到; 推挽输出 推挽输出的内部结构如图所示,一个PMOS与NMOS连接,当PMOS导通,NMOS截至时,OUT输出的就是VDD;相反当PMOS截至时,NMOS导通时,OUT输出的就是GND; 开漏输出 开漏输出的结构与推挽输出的不太一样,它只有NMOS,所以当NMOS导通时输出GND,但是截至时并没有PMOS,所以也没有输出VDD,呈现高阻态,想要输出VDD只能向上图所示外加上拉电阻; (完) 欢迎各位大佬指出错误 来源: https://www.cnblogs.com/dmfdz/p/12419085

点亮第一个灯

与世无争的帅哥 提交于 2020-03-05 07:04:29
入门实践 我们这里采用CC2640R2F LaunchPad 作为实验对象,首先来看一下原理图: 板上的LEDS 分别被接在了DIO6 和DIO7上 按上一篇文章中的方法打开工程C:\ti\simplelink_cc2640r2_sdk_3_30_00_20\examples\rtos\CC2640R2_LAUNCHXL\drivers\empty 在empty.c中添加如下代码: #include <unistd.h> #include <stdint.h> #include <stddef.h> #include <ti/devices/cc26x0r2/driverlib/ioc.h> #include <ti/drivers/GPIO.h> /* Board Header file */ #include "Board.h" /* * ======== mainThread ======== */ void *mainThread(void *arg0) { /* 1 second delay */ uint32_t time = 1; unsigned char led_state=0; GPIO_init(); while (1) { led_state =!led_state; sleep(time); GPIO_write(Board 来源: CSDN 作者:

stm32学习

大城市里の小女人 提交于 2020-03-04 20:06:06
1. GPIO: 原文链接:https://blog.csdn.net/qq_29350001/article/details/80681244 应用场合: ①上拉输入、下拉输入可以用来检测外部信号;例如,按键等; ②浮空输入模式,由于输入阻抗较大,一般把这种模式用于标准通信协议的I2C、USART的接收端; ③普通推挽输出模式一般应用在输出电平为0和3.3V的场合。而普通开漏输出模式一般应用在电平不匹配的场合,如需要输出5V的高电平,就需要在外部一个上拉电阻,电源为5V,把GPIO设置为开漏模式,当输出高阻态时,由上拉电阻和电源向外输出5V电平。 ④对于相应的复用模式(复用输出来源片上外设),则是根据GPIO的复用功能来选择,如GPIO的引脚用作串口的输出(USART/SPI/CAN),则使用复用推挽输出模式。如果用在I2C、SMBUS这些需要线与功能的复用场合,就使用复用开漏模式。 ⑤在使用任何一种开漏模式时,都需要接上拉电阻。 APB2>APB1: APB2负责 AD,I/O,高级TIM,串口1。 APB1负责 DA,USB,SPI,I2C,CAN,串口2345,普通TIM,PWR 来源: CSDN 作者: arkfz 链接: https://blog.csdn.net/arkfz/article/details/104654949