pin

OLED 屏幕显示

雨燕双飞 提交于 2020-02-06 03:13:11
实验描述: ALIENTEK OLED模块的控制器是SSD1306,本章,通过STM32来控制该模块显示字符和数字。代码通过SPI与OLED 屏幕相连 OLED 简介: OLED,即有机发光二极管(OrganicLight-EmittingDiode),又称为有机电激光显示(OrganicElectroluminesenceDisplay,OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。 SPI: 串口模式使用的信号线有如下几条:CS:OLED片选信号。RST(RES):硬复位OLED。DC:命令/数据标志(0,读写命令;1,读写数据)。SCLK:串行时钟线。在4线串行模式下,D0信号线作为串行时钟线SCLK。SDIN:串行数据线。在4线串行模式下,D1信号线作为串行数据线SDIN。模块的D2需要悬空,其他引脚可以接到GND。在4线串行模式下,只能往模块写数据而不能读数据。在4线SPI模式下,每个数据长度均为8位,在SCLK的上升沿,数据从SDIN移入到SSD1306,并且是高位在前的。DC线还是用作命令/数据的标志线。 相关设置步骤如下: 1

探索MicroPython(三)--基础操作示例

狂风中的少年 提交于 2020-02-05 10:56:54
基础操作示例 1. LED 2. 按键 3. GPIO 4. 外部中断 5. I2C总线 6. ADC 7. DAC 8. UART 1. LED pyBoard中一共有4个LED,分别是是LED(1)-LED(4), LED的构造函数和调用方法如下所示: 点亮LED(4)的示例代码: from pyb import LED LED ( 4 ) . on ( ) 2. 按键 pyBoard上的按键有两个一个是复位键:RST,一个是用户使用的按键USER,MicroPython中关于按键的构造函数与调用方法为: 按键调用示例代码(按下USER点亮LED): from pyb import LED , Switch def fun1 ( ) : LED ( 4 ) . toggle ( ) sw = Switch ( ) #定义按键对象名字为sw sw . callback ( fun1 ) #当按键被按下时,执行函数fun1(),即LED(4)状态反转 回调函数的使用还可以替换为这样: from pyb import LED , Switch sw = Switch ( ) #定义按键对象名字为sw sw . callback ( lambda : LED ( 4 ) . toggle ( ) ) #当按键被按下时,LED(4)状态反转 3. GPIO

HT32F5232学习之点亮LED

删除回忆录丶 提交于 2020-02-04 20:48:58
因为疫情的原因,今年在家实在是太无聊了,突然想起自己去年报名参加了个合泰杯比赛,本人也是菜鸟一个,之前从未接触过合泰的单片机,刚好手头上有一块HT32F52352的开发板,型号是ESK32-30501U2.1。上一届师兄扔在实验室里,我捡回来的,刚好也就把它带了回家。都说学习一款单片机最开始的是点亮LED,我觉得应该是配置环境还差不多,但由于我本人比较懒, 配置环境可以参考这位博主的这篇文章。 把需要下载的资料全部下载好,方便以后的学习。还有本文中的工程文件源码。 (https://download.csdn.net/download/OldHuangC/12134896) 关于这款单片机的资料在网上少之又少,我在网上找了大量的资料,本着能不自己造轮子绝不自己造轮子的原则,终于完成了隆重的点灯仪式。 由原理图可知,控制这两个LED灯的分别是PC14和PC15这两个脚,所以我们只要控制这两个口就能实现led的亮灭了。 LED.H # ifndef _LED_H # define _LED_H # include "ht32f5xxxx_01.h" # define LED_GPIO_GROUP (GPIO_PC) # define LED1_PIN (GPIO_PIN_14) # define LED2_PIN (GPIO_PIN_15) # define LED_AFIO_MODE

Linux内核之Pinctrl子系统介绍

梦想与她 提交于 2020-02-04 00:32:51
引言 在许多soc内部都包含有pin控制器,通过pin控制器的寄存器,我们可以配置一个或者一组引脚的功能和特性。在软件方面,Linux内核提供了pinctrl子系统,目的是为了统一各soc厂商的pin脚管理。 Pinctrl子系统 一、Pinctrl子系统说明 在许多soc内部都包含有pin控制器,通过pin控制器的寄存器,我们可以配置一个或者一组引脚的功能和特性。各个厂商soc的pin脚在使用中,都有许多共同的特性,要么配置,要么复用pin脚。所以内核提供了一套代码来管理这些pin,这就是pinctrl子系统。主要实现的功能: 1、管理系统中所有的可以控制的pin,在系统初始化的时候,枚举所有可以控制的pin,并标识这些pin。 2、管理这些pin的复用(Multiplexing)。对于SOC而言,其引脚除了配置成普通的GPIO之外,若干个引脚还可以组成一个pin group,行程特定的功能。pin control subsystem要管理所有的pin group。 3、配置这些pin的特性。例如使能或关闭引脚上的pull-up、pull-down电阻,配置引脚的driver strength。 实现pinctrl子系统的功能:core在初始化时,由处理器抽象pin描述,在pinctrl core中枚举所有的pin描述。当我们的驱动层driver使用pinctrl时

STM32学习笔记(一):跑马灯

二次信任 提交于 2020-02-01 03:59:05
本实验所采用的开发板为正点原子的MiniSTM32f103rc开发板,主函数程序如下,注释如下: main.c #include "stm32f10x.h" void Delay(u32 count) { u32 i=0; for(;i<count;i++); } int main(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE); //使能PA,PD端口时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //LED0-->PA.8 端口配置 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIOA.8 GPIO_SetBits(GPIOA,GPIO_Pin_8); //PA.8 输出高 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;

04_ESP8266 NONOS_SDK GPIO

我的梦境 提交于 2020-02-01 01:37:54
相关资料准备: (1)GPIO相关API请查看2c-esp8266_non_os_sdk_api_reference_cn手册 (2)GPIO相关寄存器请查看 esp8266-technical_reference_cn 手册 (3)ESP8266 的 16 个通⽤ IO 的管脚位置和名称如下表所示: 图1.1-GPIO管脚定义 其中,在四线( QUAD)模式 Flash 下,有 6 个 IO 口用于 Flash 通讯。 在两线( DUAL)模式 Flash 下,有 4 个 IO 口用于与 Flash 通讯。 说明: 本说明如果对照以下资料阅读,会更有助理解: • “附录 1 - GPIO 寄存器” • 引脚功能复⽤表:《 ESP8266_Pin_List.xlsx》 https://www.espressif.com/sites/default/files/documentation/ESP8266_Pin_List.xls 一、GPIO 口输出 目标: 将GPIO2和GPIO4设置成IO口,将管脚设为输出模式,并输出对应电平,加入delay延时,使LED按照一定频率闪烁。步骤如下: 1 、首先将添加两个头文件: "eagle_soc.h"和 "gpio.h" 2 、管脚功能选择: 将GPIO2定义为IO口,PIN_FUNC_SELECT( PERIPHS_IO_MUX

stm32学习笔记四

荒凉一梦 提交于 2020-01-31 11:51:41
按键控制 利用按键控制led,在笔记一的基础上添加按键控制。 步骤还是如常,建立key.h,key.c文件,并添加到工程中。 key.h内容 # ifndef KEY_H # include "sys.h" # define KEY0 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4) # define KEY1 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3) # define KEY2 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2) # define KEY3 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0) # define KEY0_PRES 1 # define KEY1_PRES 2 # define KEY2_PRES 3 # define WKUP_PRES 4 void KEY_Init ( void ) ; //IO初始化 u8 KEY_Scan ( u8 ) ; //按键扫描函数 # endif key.c内容 # include "key.h" # include "delay.h" void KEY_Init ( void ) { GPIO_InitTypedef key ; RCC_AHB1PeriphClockCmd ( RCC

DA14580之GPIO口的使用

大憨熊 提交于 2020-01-28 16:52:22
SDK版本:5.0.4 开发环境:Keil 芯片:DA14580 作者:Asam         DA14580的gpio使用十分简单,只需调用其SDK自带的库函数即可。       (1)IO口初始化函数 1 /** 2 **************************************************************************************** 3 * @brief Combined function to set the state and the type and mode of the GPIO pin 4 * 5 * @param[in] port GPIO port 6 * @param[in] pin GPIO pin 7 * @param[in] mode GPIO pin mode. INPUT = 0, INPUT_PULLUP = 0x100, INPUT_PULLDOWN = 0x200, OUTPUT = 0x300, 8 * @param[in] function GPIO pin usage. GPIO_FUNCTION enumaration. 9 * @param[in] high set to TRUE to set the pin into high else low 10 * 11 *

ISE约束--UCF编辑的入门介绍[zz]

ⅰ亾dé卋堺 提交于 2020-01-20 03:52:56
From: http://xilinx.eefocus.com/yq000cn/blog/70-01/185475_6dce2.html 摘要:本文主要通过一个实例具体介绍ISE中通过编辑UCF文件来对FPGA设计进行约束,主要涉及到的约束包括时钟约束、群组约束、逻辑管脚约束以及物理属性约束。 Xilinx FPGA设计约束的分类 Xilinx定义了如下几种约束类型: • “Attributes and Constraints” • “CPLD Fitter” • “Grouping Constraints” • “Logical Constraints” • “Physical Constraints” • “Mapping Directives” • “Placement Constraints” • “Routing Directives” • “Synthesis Constraints” • “Timing Constraints” • “Configuration Constraints” 通过编译UCF(user constraints file)文件可以完成上述的功能。 还是用实例来讲UCF的语法是如何的。 图1 RTL Schematic 图1 是顶层文件RTL图,左侧一列输入,右侧为输出,这些端口需要分配相应的FPGA管脚。 1: NET "pin_sysclk

JS瀑布流无限加载!

旧城冷巷雨未停 提交于 2020-01-08 02:17:00
关于瀑布流的原理我就不详细说明了,在上面的文章中有,或者大家可以去看大漠老师的文章,讲的很详细,今天我们主要是动手做一个瀑布流~ 说明:本文效果是无限加载的,意思就是你一直滚动就会一直加载图片出现,而不是说,加载几张就停了,如果需要加载几张就停止的,可以去看看下面的文章 原生JAVASCRIPT AJAX点击加载更多–(获取评论列表) 看完这个应该就明白怎么加载额定的数目后停止,但是值得注意的就是瀑布流,如果你不是无限加载,因为图片高度不一样,图片是顶部对齐的,所以底部就会出现留白的现象,如下所示: 至于底部留白美观问题,就见仁见智了! html结构: <div id="main"> <div class="pin"> <div class="box"> <img src="./images/1.jpg"/> </div> </div> <div class="pin"> <div class="box"> <img src="./images/2.jpg"/> </div> </div> <div class="pin"> <div class="box"> <img src="./images/3.jpg"/> </div> </div> <div class="pin"> <div class="box"> <img src="./images/4.jpg"/> </div>