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 * @return void 12 **************************************************************************************** 13 */ void GPIO_ConfigurePin( GPIO_PORT port, GPIO_PIN pin, GPIO_PUPD mode, GPIO_FUNCTION function, const bool high )
其中GPIO_FUNCTION 的枚举在SDK中可找到,
配置应在user_periph_setup.c文件中,void set_pad_functions(void) 函数进行配置,系统会在初始化时执行此函数
例如:
void set_pad_functions(void) // set gpio port function mode { //--------LED PIN-------------------- GPIO_ConfigurePin(GPIO_LED_PORT,GPIO_LED_PIN,OUTPUT,PID_GPIO,false ); //--------KEY PIN-------------------- GPIO_ConfigurePin(GPIO_KEY_PORT,GPIO_KEY_PIN,INPUT_PULLDOWN,PID_GPIO,false); }
(2)GPIO高低电平配置与读取
其实也只需要调用函数即可。
高电平:GPIO_SetActive(GPIO_LED_PORT,GPIO_LED_PIN);
低电平:GPIO_SetInactive(GPIO_LED_PORT,GPIO_LED_PIN);
读取电平:GPIO_GetPinStatus(GPIO_LED_PORT,GPIO_LED_PIN) (高电平返回 true,低电平返回false)
来源:https://www.cnblogs.com/asam/p/12238272.html