(一)gpio-逐飞TC264库学习(对比STM32 HAL库)

这篇具有很好参考价值的文章主要介绍了(一)gpio-逐飞TC264库学习(对比STM32 HAL库)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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_TypeDefGPIOx  ,   uint16_t   GPIO_Pin  );

函数返回值:

GPIO_PinState GPIO_PIN_RESET GPIO_PIN_SET

              // GPIO_PIN_RESET = 0GPIO_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不同,一个引脚是可以在程序运行的中途切换输入输出模式的,或许阔以搞些花活***********/

/***********这么看来gpio_init其实就相当于 引脚初始化gpio_set_dir + gpio_set_level ********/文章来源地址https://www.toymoban.com/news/detail-783173.html

到了这里,关于(一)gpio-逐飞TC264库学习(对比STM32 HAL库)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • stm32标准库和HAL库的对比学习3.《学习外部中断EXIT和应用》

            本人是大一的学生,学习了一段时间的stm32,此系列博客为个人的学习笔记,方便个人复习,如有错误或问题,非常非常欢迎大家来大力指正。 简单用文字说一下原理。 如果先要清楚了解建议去b站看一下keysking大佬的教程,很有趣易懂( 本视频的部分图也来自keys

    2024年01月19日
    浏览(48)
  • (智能车比赛)基于 ADS 逐飞库 英飞凌 TC264 377系列 的多核使用经验

    一,程序,变量储存地址设置 二,运行核选择 概念及过程描述 尽量将不同的功能划分为各个模块,然后交给不同的cpu运行。 或者说 不同的cpu负责运行不同的功能,cpu之间以少量的参数进行配合交互 ,这样可以尽最大化利用多核cpu的资源效率。 具体做法 尽量将.h以及相关函

    2024年02月02日
    浏览(42)
  • STM32的GPIO操作(寄存器&HAL)

    (注:此为乐某学习记录,若有出错的地方欢迎各位指出!) 本人使用的开发板的芯片是STM32H743XIH6,所以外设也是根据此芯片来介绍。 在使用HAL库配置的时候,需要安装STM32CubeMX。此软件可在ST官网下载,剩下的安装步骤比较简单,不会单独出篇进行讲解。 STM32CubeMX下载网址

    2024年02月04日
    浏览(53)
  • STM32萌新学习日志——用GPIO外设寄存器输出点亮LED对比库函数点亮LED——谈学习感悟

            本周学习STM32单片机,由于之前学过51单片机,为了便于切入,先学习了寄存器点亮LED灯的方法,整体思路与51单片机相似。在基本掌握后,尝试自己构建库函数雏形,过程比较困难,后面开始借鉴野火官方库函数。         这里其实建议大家在学会构建库函数后

    2024年03月17日
    浏览(95)
  • stm32标准库和HAL库的对比学习4.《学习时钟源,时钟树与内部时钟和外部时钟的用法》

            本人是大一的学生,学习了一段时间的stm32,此系列博客为个人的学习笔记,方便个人复习,如有错误或问题,非常非常欢迎大家来大力指正。         简单用文字说一下原理。         如果先要清楚了解建议去b站看一下keysking大佬的教程,很有趣易懂(本

    2024年02月21日
    浏览(43)
  • STM32的HAL库开发系列 - GPIO中断/外部中断EXTI

    STM32的HAL库开发系列 - GPIO中断/外部中断EXTI 中断它可以在GPIO口的电平发生变化时产生中断,从而使得STM32微控制器能够及时响应外部设备的变化。 STM32的GPIO中断/外部中断EXTI可以配置为上升沿中断、下降沿中断和双边沿中断三种类型,分别在GPIO口电平从低电平变为高电平、从

    2024年02月12日
    浏览(42)
  • STM32基于HAL库的开发与应用(2)GPIO口控制

    一、GPIO口是在单片机开发应用中使用最频繁的一个控制。GPIO口可作为输出高低电平也可以作为输入检测输入电平的高低。 (1)通常GPIO口输出控制LED灯、有源蜂鸣器等一些只需要高低电平就可以触发的模块。 (2)通常GPIO口作为输入,用来检测输入电平的高低状态,常用于

    2024年02月11日
    浏览(41)
  • STM32 HAL库常用GPIO函数以及外部中断配置与响应流程

    Hello,大家好,这是我第一篇博客,写的不好请大家包涵指教,话不多说直接看内容: HAL库常用GPIO函数: void HAL_GPIO_Init(GPIO_TypeDef  *GPIOx, GPIO_InitTypeDef *GPIO_Init) 这个函数主要用来初始化我们需要用到的引脚,设置其工作频率、工作模式、上下拉等参数。如果使用CubeMX配置工程

    2024年02月03日
    浏览(46)
  • 嵌入式STM32 单片机 GPIO 的工作原理详解

    STM32的 GPIO 介绍 GPIO 是通用输入/输出端口的简称,是 STM32 可控制的引脚。GPIO 的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 以 STM32F103ZET6 芯片为例子,该芯片共有 144 脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为

    2024年02月20日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包