pin

[MicroPython]TPYBoard开发板STM32F407超声波测距

浪子不回头ぞ 提交于 2020-01-04 22:48:29
1.实验目的 1. 学习在PC机系统中扩展简单I/O 接口的方法。 2. 进一步学习编制数据输出程序的设计方法。 3. 学习超声波模块的测距原理。 4. 学习LCD5110接线方法 5. 学习 F407 Micropython开发板控制超声波模块测距。 2.所需元器件 超声波模块一个 F407 Micropython开发板一块 5110LCD显示屏一个 数据线一条 杜邦线若干 3.超声波模块工作原理 (1)采用IO口TRIG触发测距,给最少10us的高电平信呈。 (2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回。 (3)有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2。 如下图接线,VCC 供 5V电源, GND 为地线,TRIG 触发控制信号输入,ECHO 回响信号输出等四个接口端。 4.控制5110显示屏显示6x8字符 先看一下LCD5110针脚含义吧(注意:LCD5110的针脚有些不一样的) F407 Micropython开发板的针脚与5110的针脚对应关系如下: F407 Micropython开发板 LCD5110 memo ---------------------------- # any Pin => RST Reset pin (0

STM32中GPIO_Mode--GPIO配置

落花浮王杯 提交于 2019-12-31 19:27:18
本篇由转载而来,有侵权请联系作者,谢谢。 原博客地址:https://blog.csdn.net/snow416/article/details/6540646 一、GPIO配置 (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入 (3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GPIO_Mode_Out_OD 开漏输出 (6)GPIO_Mode_Out_PP 推挽输出 (7)GPIO_Mode_AF_OD 复用开漏输出 (8)GPIO_Mode_AF_PP 复用推挽输出 GPIO_Speed_10MHz 最高输出速率10MHz GPIO_Speed_2MHz 最高输出速率2MHz GPIO_Speed_50MHz 最高输出速率50MHz 1.1 I/O口的输出模式下,有3种输出速度可选(2MHz、10MHz和50MHz),这个速度是指I/O口驱动电路的响应速度而不是输出信号的速度,输出信号的速度与程序有关(芯片内部在I/O口 的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路)。通过选择速度来选择不同的输出驱动模块,达到最佳的噪声 控制和降低功耗的目的。高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路

5月5日学习收获

六眼飞鱼酱① 提交于 2019-12-26 13:57:03
波特率:单片机或计算机在串口通信时的速率,指信号被调制后在单位时间内的变化,即单位时间内载波参数变化的次数,如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位,1个停止位,8个数据位),这时的波特率为240Bd,比特率为10位×240个/秒=2400bps。 delay函数:在C语言中,该函数一般是自己定义的一个延时函数。 GPIO(General Purpose Input Output):通用输入输出,另称总线扩展器,是利用工业标准I2C、SMBus或SPI接口简化了的I/O口,简而言之,就是每个GPIO端口可通过软件进行配置,决定其是输入还是输出端口。 GPIO库: gpio管脚:一个io管脚,这个管脚可以有多个配置。在库函数中用GPIO_PIN_1这样的宏定义表示。 gpio端口:在库函数中用宏定义GPIOA、GPIOB等表示。 1、gpio库说明 库文件名:stn32f4xx_gpio.c 使用该驱动的方法: (1)使用RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOx,ENABLE)函数使能gpio的AHB总线时钟。 (2)使用GPIO_Init()函数对每个引脚进行四种可能的配置: 《1》输入状态:Floating(浮空)、Pull-up(上拉)、Pull-down(下拉) 《2》输出状态:Push-Pull(上拉下拉)

手把手教你通过Google Adsense“PIN码验证”

那年仲夏 提交于 2019-12-26 00:00:34
Google Adsense,是目前Webmasters(或Bloggers,以下简称站长)最受欢迎的广告联盟之一。它的高单价、支付稳定等天然优势让国内众多广告联盟黯然失色。 当然,Google Adsense也不是那么完美,比如PIN码验证、收款结汇等问题,一直让一些站长望而却步,担心辛苦赚来的广告费最后付诸东流。毕竟,装进口袋里的钱,才算是自己的。 那么今天,我就重点讲讲令大家头疼的PIN码。 扫盲贴:什么是PIN码? 一些才入坑的小白,可能不知道PIN码是什么,如果懂的话可以略过这一节。 所谓PIN 码,是Google Adsense验证站长联系信息的主要方式,也是确定站长收款资格的验证服务。 当Google Adsense 账户余额达到10美元时 ,就会触发PIN码验证,即以平信的方式,向发布商帐户中的收款人地址寄出带有PIN码,如果在规定期限内没有完成验证,将会停止广告展示。 不过,由于PIN码的寄件方式相对太传统,因此很可能出现连续申请几次也无法收到的情况,这样就会影响Adsense账户的收款。 一直收不到PIN码怎么办? 在第三次申请PIN 码后( 现在改为4次 ),在输入 PIN 码的页面(点击红色警告右侧的“操作”链接按钮即可进入)下方就会显示“如果您从该日期起的 4 周内未收到 PIN,请填写此表单,并附上显示有收款人姓名和邮寄地址(与您账号内的相应信息一致

【zedboard】在PL端实现流水灯

南笙酒味 提交于 2019-12-24 04:15:20
开发环境: win 10 开发平台: vivado 2015.4 目的: 在zynq7000的基础上以zedboard为硬件平台实现流水灯,zynq7000系列有一个硬件FPGA和两个ARM-A9硬核,FPGA部分被称为PL(Programmable Logic),不使用SDK来进行实验。 流程: 正式开始建立工程和编写代码之前我们需要先看懂原理图,下面我们看一下zedboard的LED所对应的原理图、 这是LED部分的原理图,在找到对应的FPGA引脚 LD0对应的T22 LD1对应的T21 LD2对应的U22 LD3对应的U21 LD4对应的V22 LD5对应的W22 LD6对应的U19 LD7对应的U14 1:使用vivado建立工程,编写Verilog代码 。 打开vivado 软件,见下图。 一直下一步建立一个RTL PROject, 然后一直下一步直到选择板子的一步,选择board-zedboard,点击next->finish. 到现在为止工程就建立完成了 现在我们添加vrilog的代码了 右键选择add sources ,然后选择 add design source。 选择create file 插入一下代码 module PL_LED_TEST( input clk, input rst, output reg [7:0]LED ); reg [31:0] cntr

stm32 HAL库函数——GPIO

断了今生、忘了曾经 提交于 2019-12-16 13:05:34
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init); void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin); GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState); void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin); void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin); 以上内容复制自stm32f7xx_hal_gpio.h 初始化HAL库 HAL_Init(); 初始化时钟(正点原子系统文件夹里得函数)

10、PWM

偶尔善良 提交于 2019-12-07 17:57:37
定义 PWM(Pulse Width Modulation),脉冲宽度调制。 脉冲:方波,频率(freq) 宽度:高电平的宽度,占空比(duty) PWM的模式分为1和2 PWM1:TIMx_CNT<TIMx_CCR1,通道1便为有效状态,否则为无效状态 PWM2:TIMx_CNT<TIMx_CCR1,通道1便为无效状态,否则为有效状态 TIMx_CNT由TIM_TimeBaseStructure.TIM_Period决定 TIMx_CCR1由TIM_SetComparex(x:1、2、3、4)函数决定 有效状态由TIM_OCInitStructure.TIM_OCPolarity决定 其中频率值由计数值决定,占空比由比较值决定 例 #include "stm32f4xx.h" #include "sys.h" static GPIO_InitTypeDef GPIO_InitStructe; static USART_InitTypeDef USART_InitStructe; static NVIC_InitTypeDef NVIC_InitStructe; static TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructe; //串口初始化 void usart_init(uint32_t baud) { //使端口A通电 RCC

Codeforces Round #603 (Div. 2) B. PIN Codes 水题

半城伤御伤魂 提交于 2019-12-06 04:27:19
B. PIN Codes A PIN code is a string that consists of exactly 4 digits. Examples of possible PIN codes: 7013, 0000 and 0990. Please note that the PIN code can begin with any digit, even with 0. Polycarp has n (2≤n≤10) bank cards, the PIN code of the i-th card is pi. Polycarp has recently read a recommendation that it is better to set different PIN codes on different cards. Thus he wants to change the minimal number of digits in the PIN codes of his cards so that all n codes would become different. Formally, in one step, Polycarp picks i-th card (1≤i≤n), then in its PIN code pi selects one

STM32基本GPIO操作:点灯(库函数+寄存器)

和自甴很熟 提交于 2019-12-05 22:14:19
社团作业=_= 开发版上的LED灯负极连接在PB5口,正极串联一510Ω电阻后与3.3V相连 若开发板不带LED灯则需要自行连接,务必串联一个合适的电阻防止LED灯烧坏 零、一个有趣的延时函数 来自于开发板配套资料当中的例程,第一次看到的时候觉得耳目一新,代码如下: void Delay(u32 count) { u32 i = 0; for (; i < count; i++) ; } 当中的u32类型是在stm32f10x.h当中的一个宏定义,对应uint32_t,表示32位无符号型整数,在我的开发板当中就是unsigned int类型。 因为STM32的主频比电脑CPU慢得多,因此可以通过这种循环的方式来达到延时的效果 一、库函数版本 1.初始化 以下是初始化PB5端口的代码 // 定义一个类型GPIO_InitTypeDef,名字叫做GPIO_InitStructure的结构体 GPIO_InitTypeDef GPIO_InitStructure; // PORTB时钟使能 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // 配置结构体GPIO_InitStructure GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; // 设置GPIO端口号为5 GPIO

8*8LED点阵

折月煮酒 提交于 2019-12-04 07:36:32
基础认识 1.5英寸 LED点阵管数码管 8*8红色 16pin 有如下两种型号: 共阳1588BS 共阴1588AS 共阴 1588AS 共阳 1588BS 编程导向 共阴和共阳其编程思路基本类似,只是对应IO引脚电平相反而已 测试的单片机是:STM32F103C8T6 模块为:共阳1588BS 接线: STM32 接线: 点阵屏1-8:A0、A1、A2、A3、A4、A5、A6、A7 点阵屏9-16:B0、B1、B10、B11、B12、B13、B14、B15 点阵屏点亮电平分析 正极:9、14、8、12、1、7、2、5 负极:13、3、4、10、6、11、15、16 点亮电平引脚 高电平:B0 B13 A7 B11 A0 A6 A1 A4 低电平:B12 A2 A3 B1 A5 B10 B14 B15 端口初始化: 将使用到的IO口均设置为输出即可 行列控制 因为面板是正方形,所以这里所谓的行/列都是自己定义的, 设置高电平脚为行,低电平脚为列 1 //行控制 2 void R88_row_control(u8 i,BitAction c){ 3 if(i==0) GPIO_WriteBit(GPIOB,GPIO_Pin_0,c); //1 4 if(i==1) GPIO_WriteBit(GPIOB,GPIO_Pin_13,c); //1 5 if(i==2) GPIO