void gpio_init (gpio_pin_enum pin, gpio_dir_enum dir, uint8 dat, gpio_mode_enum pinmode)
//-------------------------------------------------------------------------------------------------------------------
// 函数简介 gpio 初始化
// 参数说明 pin 选择的引脚 (可选择范围由 zf_driver_gpio.h 内 gpio_pin_enum 枚举值确定)
// 参数说明 mode 引脚的方向 [GPI/GPIO]
// 参数说明 dat 引脚初始化时设置的电平状态,输出时有效 0:低电平 1:高电平 仅在设置为输出模式时有效
// 参数说明 mode 引脚的模式 (可选择范围由 zf_driver_gpio.h 内 gpio_mode_enum 枚举值确定)
// 返回参数 void
// 使用示例 gpio_init(P00_0, GPO, 1, GPO_PUSH_PULL); // P00_0初始化为GPIO功能、输出模式、输出高电平、推挽输出
// 备注信息 需要特别注意P20_2是不能用于输出的,仅仅只有输入的功能
//-------------------------------------------------------------------------------------------------------------------
typedef enum // 枚举端口模式 此枚举定义不允许用户修改
{
GPI_FLOATING_IN, // 定义管脚浮空输入
GPI_PULL_UP , // 定义管脚上拉输入
GPI_PULL_DOWN , // 定义管脚下拉输入
GPO_PUSH_PULL , // 定义管脚推挽输出
GPO_OPEN_DTAIN , // 定义管脚开漏输出
}gpio_mode_enum;
/*****这个部分在stm32中已经由cubeMX配置好了,用户在cube中选择就好了******/
void system_delay_ms (uint32 time)
//-------------------------------------------------------------------------------------------------------------------
// 函数简介 system 毫秒 延时函数
// 参数说明 time 延时时间 单位:ms
// 返回参数 void
// 使用示例 system_delay_ms(100); // 延时100毫秒
//-------------------------------------------------------------------------------------------------------------------
/*******相当于32里的HAL_Delay (100); *******/
void system_delay_us (uint32 time)
//-------------------------------------------------------------------------------------------------------------------
// 函数简介 system 微秒 延时函数
// 参数说明 time 延时时间 单位:us
// 返回参数 void
// 使用示例 system_delay_us(100); // 延时100微秒
//-------------------------------------------------------------------------------------------------------------------
gpio_get_level(SWITCH1)
原型: uint8 gpio_get_level (gpio_pin_enum pin)
//-------------------------------------------------------------------------------------------------------------------
// 函数简介 gpio 电平获取
// 参数说明 pin 选择的引脚 (可选择范围由 zf_driver_gpio.h 内 gpio_pin_enum 枚举值确定)
// 返回参数 uint8 引脚当前电平
// 使用示例 uint8 status = gpio_get_level(P00_0);// 获取P00_0引脚电平
// 备注信息
//-------------------------------------------------------------------------------------------------------------------
/******相当于32中的
GPIO_PinState HAL_GPIO_ReadPin ( GPIO_TypeDef * GPIOx , uint16_t GPIO_Pin );
GPIO_PinState: GPIO_PIN_RESET 、GPIO_PIN_SET
// GPIO_PIN_RESET = 0;GPIO_PIN_SET=1;
*********/
gpio_set_level(LED1, led_state);
原型:void gpio_set_level (gpio_pin_enum pin, uint8 dat)
//-------------------------------------------------------------------------------------------------------------------
// 函数简介 gpio 输出设置
// 参数说明 pin 选择的引脚 (可选择范围由 zf_driver_gpio.h 内 gpio_pin_enum 枚举值确定)
// 参数说明 dat 0:低电平 1:高电平
// 返回参数 void
// 使用示例 gpio_set_level(P00_0, 1);// P00_0 输出高电平
// 备注信息
//-------------------------------------------------------------------------------------------------------------------
/****相当于32中的 HAL_GPIO_WritePin ( GPIOC , GPIO_PIN_13, GPIO_PIN_RESET );****/
(1.10号更新)整pit的时候突然发现,逐飞是有写与 HAL_GPIO_TogglePin 相似的函数的
void gpio_toggle_level (gpio_pin_enum pin)
//-------------------------------------------------------------------------------------------------------------------
// 函数简介 gpio 翻转电平
// 参数说明 pin 选择的引脚 (可选择范围由 zf_driver_gpio.h 内 gpio_pin_enum 枚举值确定)
// 返回参数 void
// 使用示例 gpio_toggle_level(P00_0);// P00_0引脚电平翻转
// 备注信息
//-------------------------------------------------------------------------------------------------------------------
看了看 "zf_driver_gpio.h" 发现还有一个给用户使用的函数是
void gpio_set_dir (gpio_pin_enum pin, gpio_dir_enum dir, gpio_mode_enum pinmode)
//-------------------------------------------------------------------------------------------------------------------
// 函数简介 gpio 方向设置
// 参数说明 pin 选择的引脚 (可选择范围由 zf_driver_gpio.h 内 gpio_pin_enum 枚举值确定)
// 参数说明 dir 引脚的方向 输出:GPO 输入:GPI
// 参数说明 mode 引脚的模式 (可选择范围由 zf_driver_gpio.h 内 gpio_mode_enum 枚举值确定)
// 返回参数 void
// 使用示例 gpio_dir(P00_0, GPO, GPO_PUSH_PULL);// 设置P00_0为推挽输出模式
// 备注信息
//-------------------------------------------------------------------------------------------------------------------
/**********这个函数的存在就意味着,与依赖cube配置下的stm32不同,一个引脚是可以在程序运行的中途切换输入输出模式的,或许阔以搞些花活***********/文章来源:https://www.toymoban.com/news/detail-783173.html
/***********这么看来gpio_init其实就相当于 引脚初始化 + gpio_set_dir + gpio_set_level ********/文章来源地址https://www.toymoban.com/news/detail-783173.html
到了这里,关于(一)gpio-逐飞TC264库学习(对比STM32 HAL库)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!