资源简介
esp8266的HSPI主机例子,工程是基于RTOS的,不过复制到非RTOS也是很简单的。
代码片段和文件信息
/*
* ESPRSSIF MIT License
*
* Copyright (c) 2015
*
* Permission is hereby granted for use on ESPRESSIF SYSTEMS ESP8266 only in which case
* it is free of charge to any person obtaining a copy of this software and associated
* documentation files (the “Software“) to deal in the Software without restriction including
* without limitation the rights to use copy modify merge publish distribute sublicense
* and/or sell copies of the Software and to permit persons to whom the Software is furnished
* to do so subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or
* substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED “AS IS“ WITHOUT WARRANTY OF ANY KIND EXPRESS OR
* IMPLIED INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM DAMAGES OR OTHER LIABILITY WHETHER
* IN AN ACTION OF CONTRACT TORT OR OTHERWISE ARISING FROM OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
*/
#include “espressif/esp_common.h“
#include “freertos/portmacro.h“
#include “gpio.h“
void gpio_config(GPIO_ConfigTypeDef *pGPIOConfig)
{
uint16 gpio_pin_mask = pGPIOConfig->GPIO_Pin;
uint32 io_reg;
uint8 io_num = 0;
uint32 pin_reg;
if (pGPIOConfig->GPIO_Mode == GPIO_Mode_Input) {
GPIO_AS_INPUT(gpio_pin_mask);
} else if (pGPIOConfig->GPIO_Mode == GPIO_Mode_Output) {
GPIO_AS_OUTPUT(gpio_pin_mask);
}
do {
if ((gpio_pin_mask >> io_num) & 0x1) {
io_reg = GPIO_PIN_REG(io_num);
if ((0x1 << io_num) & (GPIO_Pin_0 | GPIO_Pin_2 | GPIO_Pin_4 | GPIO_Pin_5)) {
PIN_FUNC_SELECT(io_reg 0);
} else {
PIN_FUNC_SELECT(io_reg 3);
}
if (pGPIOConfig->GPIO_Pullup) {
PIN_PULLUP_EN(io_reg);
} else {
PIN_PULLUP_DIS(io_reg);
}
if (pGPIOConfig->GPIO_Mode == GPIO_Mode_Out_OD) {
portENTER_CRITICAL();
pin_reg = GPIO_REG_READ(GPIO_PIN_ADDR(io_num));
pin_reg &= (~GPIO_PIN_DRIVER_MASK);
pin_reg |= (GPIO_PAD_DRIVER_ENABLE << GPIO_PIN_DRIVER_LSB);
GPIO_REG_WRITE(GPIO_PIN_ADDR(io_num) pin_reg);
portEXIT_CRITICAL();
} else if (pGPIOConfig->GPIO_Mode == GPIO_Mode_Sigma_Delta) {
portENTER_CRITICAL();
pin_reg = GPIO_REG_READ(GPIO_PIN_ADDR(io_num));
pin_reg &= (~GPIO_PIN_SOURCE_MASK);
pin_reg |= (0x1 << GPIO_PIN_SOURCE_LSB);
GPIO_REG_WRITE(GPIO_PIN_ADDR(io_num) pin_reg);
GPIO_REG_WRITE(GPIO_SIGMA_DELTA_ADDRESS SIGMA_DELTA_ENABLE);
port
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-07-10 16:14 HSPI_Master\
文件 2947 2018-06-13 16:05 HSPI_Master\Makefile
文件 1815 2018-06-13 16:05 HSPI_Master\README.md
文件 3760 2018-06-13 16:05 HSPI_Master\clean.sh
目录 0 2018-07-10 16:14 HSPI_Master\driver\
文件 1428 2018-06-13 16:05 HSPI_Master\driver\Makefile
文件 7328 2018-06-13 16:05 HSPI_Master\driver\gpio.c
文件 3522 2018-06-13 16:05 HSPI_Master\driver\hw_timer.c
文件 9613 2018-06-13 16:05 HSPI_Master\driver\i2c_master.c
文件 16970 2018-06-13 16:05 HSPI_Master\driver\spi_interface.c
文件 15212 2018-06-13 16:05 HSPI_Master\driver\uart.c
文件 3573 2018-06-13 16:05 HSPI_Master\gen_misc.bat
文件 3791 2018-06-13 16:05 HSPI_Master\gen_misc.sh
目录 0 2018-07-10 16:14 HSPI_Master\include\
目录 0 2018-07-10 16:14 HSPI_Master\include\driver\
文件 9789 2018-06-13 16:05 HSPI_Master\include\driver\gpio.h
文件 9604 2018-06-13 16:05 HSPI_Master\include\driver\gpio.h~
文件 2350 2018-06-13 16:05 HSPI_Master\include\driver\hw_timer.h
文件 3712 2018-06-13 16:05 HSPI_Master\include\driver\i2c_master.h
文件 3708 2018-06-13 16:05 HSPI_Master\include\driver\i2c_master.h~
文件 7745 2018-06-13 16:05 HSPI_Master\include\driver\spi_interface.h
文件 7065 2018-06-13 16:05 HSPI_Master\include\driver\spi_register.h
文件 7834 2018-06-13 16:05 HSPI_Master\include\driver\uart.h
文件 1297 2018-06-13 16:05 HSPI_Master\include\user_config.h
目录 0 2018-07-10 16:14 HSPI_Master\user\
文件 1444 2018-06-13 16:05 HSPI_Master\user\Makefile
文件 4766 2018-06-13 16:05 HSPI_Master\user\user_main.c
- 上一篇:dcraw 1.477
- 下一篇:linux 配置文件读写C
相关资源
- esp8266自动获取天气及时钟在oled显示
- 指纹传感器_电容式_SPI接口__GF66x8系列
- stm32+esp8266
- 非阻塞式AT指令发送接收工程,可驱动
- STM32连接阿里云入门手册.pdf
- zynq中设置QSPI dual stacked flash.docx
- Arduino+超声波+esp8266。_8266ok.ino
- STM32模拟SPi.rar
- RN8302锐能微芯片驱动程序
- PMSM电机的正弦驱动dsPIC30F
- OLED4线SPI改IIC的方法和测试代码
- pic单片机spi双机通信
- 基于Arduino AT指令实现esp8266通讯
- LTSpice MOS 模型建立
- arduino uno + ESP8266 搭建的天气预报平台
- ESP8266与手机交互多种方式
- C51 w25q64驱动及字库烧录
- 用Sping发布WebService
- MSP430F149与ESP8266串口通信
- AD7606基于DSP28335的SPI方式下的数据采集
- Automotive SPICE 规范[PAM_V2.5]
- ADS1256 包含.c.h文件 stm32f407 SPI
- TLE7242驱动源码
- 基于STM32的SPI驱动HMC5983的代码
- msp430代码模拟spi
- DS3234与cm3相连接
- SD卡_SPI驱动源代码.rar
- Cadence Virtuoso SPICE网表导入指南
- CrawlSpider豆瓣图书爬虫
- Hspice(中文实用版)
评论
共有 条评论