gpio

ESP8266-12F学习之点亮一个LED灯

那年仲夏 提交于 2020-03-30 01:53:41
点亮一个LED灯 上一篇文章,我们介绍了怎么在Windows系统下搭建一个SEP8266的开发环境,那在这一篇文章中我们要开始来编写一个硬件入门经典小程序,如何点亮一个LED小灯,同时在这一章中我们还会介绍怎么样将编译好的程序下载到ESP8266-12f中。 第一步: 下载官方demo框架,从 http://wiki.ai-thinker.com/esp8266/examples 下载,当然,也可以在文章最后下载我的附件,下载完后,我们将文件添加到SDK中进行编译,步骤如图: 点开C/C++分支,并选中Existing Code as Makefile Project: 去除C++支持,选中 Cygwin GCC,点击Browser,选中我们解压后所在的目录。点击finish。 到这里,应该就成功的将我们的工程文件添加到SKD当中了,红色框内为所添加的文件。 接下来开始编写程序部分,这里我们涉及到ESP8266-12F的IO口的控制,控制方法其实和STM32库函数类似比如 先选定一个GPIO管脚。用 PIN_FUNC_SELECT(PIN_NAME, FUNC) 函数。比如我选定GPIO14这个管脚,则这样写: PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, FUNC_GPIO14); 如果你设置这个管脚为高电平,则这样写: GPIO_OUTPUT

K66 菜单

99封情书 提交于 2020-03-26 05:05:10
一个菜单,我感觉就是利用按键选择不同功能 每一个操作 代表一个界面 你想有10个操作 就弄出10个界面 首先一个结构体 struct caidan { uint8 current;//当前 uint16 up;//上 uint16 down;//下 uint16 enter;//确认 uint16 back; } ope[20]={ {0,5,1,9,0},//界面1,第一页‘TEL’ game mes uc {1,0,2,6,1},//界面1 TEL ‘game’ MES UC {2,1,3,12,2},//界面1 TEL game 'mes' uc {3,2,4,8,3},//界面1 TEL game mes ‘uc’ {4,3,5,4,4},//界面1 第二页 ‘QQ’ WX {5,4,0,5,5},//界面1 QQ 'WX' {6,4,7,11,1},//界面2 游戏界面 'TCS' TET {7,6,6,10,1},//界面2 TCS 'TET' {8,8,8,8,3},//时钟 {9,9,9,11,0},//电话号 {10,10,10,10,7},//21点小游戏 {11,11,11,11,6},//贪吃蛇游戏 {12,12,12,12,2}//温度 }; uint8 function=0; function代表当前选择的界面所对应的函数序号 假如你选择了0界面

Tiny4412裸机程序,按键检测

落爺英雄遲暮 提交于 2020-03-25 08:55:53
3 月,跳不动了?>>> 一、控制原理说明 先看一下原理图: 首先把按键对应的GPIO设置为输入模式,修改GPX3CON寄存器(板子不同,可能对应的GPIO管脚不同),通过上图可知当没有按下按键时,对应的GPIO状态为高电平,当有按键被按下时,对应的GPIO变为低,我们在程序一直检测这几个GPIO状态即可。 二、程序说明 其中Start.s文件同上一个实验完全相同;链接脚本key.lds的内容和led.lds完全相同,只把名字改了改;Makefile的内容也大部分一样,也只是改了改里边文件的名字,key.c的文件需要重新编写,代码如下: /* * 程序说明 * 一上电,4个LED全亮,当某个按键被按下,则对应的LED熄灭(可同时按下多个键) * 对应关系:KEY1-LED1,KEY2-LED2,KEY3-LED3,KEY4-LED4 */ //按键对应的GPIO #define GPX3CON (*(volatile unsigned int *)0x11000C60) #define GPX3DAT (*(volatile unsigned int *)0x11000C64) //LED对应的GPIO #define GPM4CON (*(volatile unsigned int *)0x110002E0) #define GPM4DAT (*(volatile

11-2

本小妞迷上赌 提交于 2020-03-23 07:55:06
\documentclass[UTF8]{ctexart} %\documentclass{article} \title{2019 年 10 月 23 日---{\today}实习总结} \author{雷贻山} \usepackage[utf8]{inputenc} \usepackage{ctex} \date{\today} \usepackage{geometry} \geometry{a4paper,left=1cm,right=2cm,top=2cm,bottom=1cm} \usepackage{graphicx} \usepackage[breaklinks,colorlinks,linkcolor=black,citecolor=black,urlcolor=black]{hyperref} \begin{document} \maketitle \tableofcontents\ \section{10月23日} \subsection{安装了keil软件,st-link驱动} \subsection{阿波罗板子是程序只能烧录F429的例程} \subsection{keil串口下载只能一次打开一个,否则串口被占用} \subsection{学习结构体构造类型} \includegraphics[scale=0.6]{struct.png}

stm32--温度传感器DS18B20使用

只谈情不闲聊 提交于 2020-03-17 07:56:54
DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃。主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。必须先启动DS18B20开始转换,再读出温度转换值。本程序仅挂接一个芯片,使用默认的12位转换精度,外接供电电源,读取的温度值高位字节送WDMSB单元,低位字节送WDLSB单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值.本例VCC用3.3V 供电,将DQ连接结到stm32的PA1口, DB18B20ForStm32.c #include "ds18b20.h" #define EnableINT() #define DisableINT() #define DS_PORT GPIOA //DS18B20连接口 #define DS_DQIO GPIO_Pin_1 //GPIOA1 #define DS_RCC_PORT RCC_APB2Periph_GPIOA #define DS_PRECISION 0x7f //精度配置寄存器 1f=9位; 3f=10位; 5f=11位; 7f=12位; #define DS_AlarmTH 0x64 #define DS

STM32F0_HAL库驱动描述——基于F1的USART串口IT中断实现解析

给你一囗甜甜゛ 提交于 2020-03-15 18:44:36
从原子F103 HAL库基础串口例程来看HAL程序结构; 从main函数开始,首先是HAL库两个函数的初始化: HAL_Init(); Stm32_Clock_Init(RCC_PLL_MUL9); 解析HAL_Init() 分为四个部分: A:启用FLASH预取缓存区; B:设置中断组优先级(由于F0是M0系列的,因此没有组优先级一说); C:配置SYSTICK时钟; D:初始化低等级的硬件; HAL_StatusTypeDef HAL_Init(void) { /* Configure Flash prefetch */ #if (PREFETCH_ENABLE != 0) #if defined(STM32F101x6) || defined(STM32F101xB) || defined(STM32F101xE) || defined(STM32F101xG) || \ defined(STM32F102x6) || defined(STM32F102xB) || \ defined(STM32F103x6) || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG) || \ defined(STM32F105xC) || defined(STM32F107xC) /* Prefetch

树莓派GPIO接口

こ雲淡風輕ζ 提交于 2020-03-13 06:16:42
一、GPIO模式 GPIO分为板上模式和BCM模式 板上模式即为平时百度谷歌搜到的图,按顺序1-40排列(1B是26引脚) BCM模式为CPU分的,在图上一般会单独标记 二、引脚分类 1.电源:3.3V 5V GND GPIO引脚只能接3.3V 2.控制端口:GPIO可控制电平 3.其他:比如SCL、SDA 三、一个比较常见的点亮LED的demo import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) led = 23 GPIO.setup(led, GPIO.OUT) try: while(True): GPIO.output(led, 1) time.sleep(1) GPIO.output(led, 0) time.sleep(1) except Exception as e: print(e) finally: GPIO.cleanup() 四、疑问 在什么情况下,不接保护电阻,树莓会烧? 来源: https://www.cnblogs.com/punkrocker/p/11186299.html

stm32寄存器版学习笔记07 ADC

那年仲夏 提交于 2020-03-12 14:47:56
  STM32F103RCT有3个ADC,12位主逼近型模拟数字转换器,有18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。 1.通道选择   stm32把ADC转换分成2个通道组:规则通道组相当于正常运行的程序;注入通道组相当于中断。程序初始化阶段设置好不同的转换组,系统运行中不用变更循环转换的配置,从而达到任务互不干扰和快速切换。   有16个多路通道。可以把转换组织成两组:规则组和注入组。在任意多个通道上以任意顺序进行的一系列转换构成成组转换。例如,可以如下顺序完成转换:通道3、通道8、通道2、通道2、通道0、通道2、通道2、通道15。     ● 规则组由多达16个转换组成。规则通道和它们的转换顺序在ADC_SQRx寄存器中选择。      规则组中转换的总数应写入ADC_SQR1寄存器的L[3:0]位中。     ● 注入组由多达4个转换组成。注入通道和它们的转换顺序在ADC_JSQR寄存器中选择。                        注入组里的转换总数目应写入ADC_JSQR寄存器的L[1:0]位中。   如果ADC_SQRx或ADC_JSQR寄存器在转换期间被更改,当前的转换被清除,一个新的启动脉冲将发送到ADC以转换新选择的组。 2.ADC1通道0来采样外部电压值 配置步骤 ①开启PA口时钟

STM32F4关键寄存器总结

放肆的年华 提交于 2020-03-12 07:53:52
—— 整理自STM32F4中文参考手册(ST)、STM32F4开发指南-寄存器版本(正点原子)、cortex m3与m4权威指南(英文) 目录 NVIC GPIO EXIT USART TIM(2~5) 基本设置 PWM相关 NVIC 此章节与内核相关,未在参考手册中出现,需参考权威指南。 ISER1~8 (Interrupt Set-Enable Registers)中断使能寄存器组。CM4 内核支持 256 个中断,用 8 个 32 位寄存器来控制,每个位控制一个中断。由于STM32F4 的可屏蔽中断最多只有 82 个,所以仅ISER[0~2]有效,其中ISER[0]的 bit0~31 分别对应中断0~31;ISER[1]的 bit0~32 对应中断 32~63;ISER[2]的 bit0~17 对应中断 64~81。设置相应的 ISER 位为 1,使特定中断被使能。 具体每一位对应哪个中断,请参考 stm32f4xx.h 里面的第 188 行处。 ICER1~8 (Interrupt Clear-Enable Registers)中断除能寄存器组。用来清除某个中断的使能。其对应位所代表的中断和 ISER 相同。通过置位来清除中断位。 ISPR1~8 (Interrupt Set-Pending Registers)中断挂起控制寄存器组。其对应位所代表的中断和 ISER 相同

基于STM32之UART串口通信协议(三)接收

蹲街弑〆低调 提交于 2020-03-12 02:00:20
一、前言 1、简介   回顾上一篇 UART发送 当中,已经讲解了如何实现UART的发送操作了,接下来这一篇将会继续讲解如何实现UART的接收操作。 2、UART简介   嵌入式开发中,UART串口通信协议是我们常用的通信协议之一,全称叫做通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)。 3、准备工作   在 UART详解 中已经有了详细的说明,按照里面的说明即可。 注:   建议每次编写好一个相关功能且测试功能成功使用后,保存备份并压缩成一份Demo例程,方便日后有需要的时候可以直接使用。   例如: 二、CubeMx配置及函数说明 说明:   如果有看过我写的 UART发送 的兄弟姐妹们应该会知道,在 UART发送 和 UART详解 中的CubeMx配置都是一样的。   但这一次不同,会在原本配置CubeMx的基础上,添加一些UART的中断配置来实现中断接收操作。 1、CubeMx配置 1)按照 UART详解 配置UART(若配置过,可以继续使用) 2)使能串口中断 3)设置中断优先级(如果没开启其他中断,那就默认即可,直接跳过) 4)代码生成(点击前最好把原本的工程关掉,不然有可能会有问题) 2、函数说明 1)CubeMx生成的UART初始化(在usart.c中) 说明:   会与上一篇 UART发送