開發板原理圖
一,LED(GPIO2)
二,繼電器(GPIO5)
NONOS(2.2.0)
NONOS(2.2.0)
NONOS(2.2.0)
1.設置GPIO輸出高低電平
設置GPIO2輸出高電平
GPIO_OUTPUT_SET(2, 1);
設置GPIO2輸出低電平
GPIO_OUTPUT_SET(2, 0);
不過正常流程是先設置這個引腳的功能
PIN_FUNC_SELECT(IO口的寄存器地址 , 功能)
舉例1:配置 GPIO2作為普通IO
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U , FUNC_GPIO2);
舉例2:配置 GPIO2作為串口功能
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U , FUNC_UART1_TXD_BK );
說一下: FUNC_UART1_TXD_BK 這個我具體也不知道是什么意思,只知道可能是作為串口1的TX輸出
舉例3:配置 GPIO5作為普通IO功能
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO5_U, FUNC_GPIO5 );
注: 這一個是默認的功能
注:在配置完PIN_FUNC_SELECT 以后,當前引腳為高阻態,既不是高電平也不是低電平.
測試(GPIO2輸出高電平點亮LED)
#include "gpio.h"
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U , FUNC_GPIO2);
GPIO_OUTPUT_SET(2, 1);//設置GPIO2輸出高電平
測試(GPIO2輸出低電平,GPIO5輸出高電平控制繼電器吸合)
#include "gpio.h"
GPIO_OUTPUT_SET(2, 0);//設置GPIO2輸出低電平
GPIO_OUTPUT_SET(5, 1);//設置GPIO5輸出高電平
如果控制有SPI功能的引腳,需要寫上一句話,否則不能控制
WRITE_PERI_REG(PERIPHS_IO_MUX, 0x105);
RTOS(2.2.0)
RTOS(2.2.0)
RTOS(2.2.0)
官方提供了兩個函數
GPIO_OUTPUT_SET(gpio_no, bit_value)
設置GPIO2輸出高電平
GPIO_OUTPUT_SET(2, 1);
設置GPIO2輸出低電平
GPIO_OUTPUT_SET(2, 0);
GPIO_OUTPUT(gpio_bits, bit_value)
官方提供的一次性設置多個引腳函數
設置GPIO2和GPIO5輸出高電平
GPIO_OUTPUT(BIT2 | BIT5, 1);
設置GPIO2和GPIO5輸出低電平
GPIO_OUTPUT(BIT2 | BIT5, 0);
不過正常流程是先設置這個引腳的功能
PIN_FUNC_SELECT(IO口的寄存器地址 , 功能)
舉例1:配置 GPIO2作為普通IO
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U , FUNC_GPIO2);
舉例2:配置 GPIO2作為串口功能
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U , FUNC_UART1_TXD_BK );
說一下: FUNC_UART1_TXD_BK 這個我具體也不知道是什么意思,只知道可能是作為串口1的TX輸出
舉例3:配置 GPIO5作為普通IO功能
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO5_U, FUNC_GPIO5 );
注: 這一個是默認的功能
注:在配置完PIN_FUNC_SELECT 以后,當前引腳為高阻態,既不是高電平也不是低電平.
測試(GPIO2輸出高電平點亮LED)
#include "gpio.h"
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U , FUNC_GPIO2);
GPIO_OUTPUT_SET(2, 1);//設置GPIO2輸出高電平
測試(GPIO2輸出低電平,GPIO5輸出高電平控制繼電器吸合)
#include "gpio.h"
GPIO_OUTPUT_SET(2, 0);//設置GPIO2輸出低電平
GPIO_OUTPUT_SET(5, 1);//設置GPIO5輸出高電平
測試(GPIO2輸出低電平,GPIO5輸出低電平)
#include "gpio.h"
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U , FUNC_GPIO2);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO5_U , FUNC_GPIO5);
GPIO_OUTPUT(BIT2 | BIT5, 0);//設置GPIO2和GPIO5輸出低電平