資源簡介
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?<????????????????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_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_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
評論
共有 條評論