zoukankan      html  css  js  c++  java
  • RTT设备与驱动之PIN设备

    单片机的PIN有2个基本功能:GPIO和AFIO,其中gpio的常用功能:

    1 输入:上拉、下拉、模拟、浮动

    2 输出:上拉、下拉、推挽、开漏

    3 中断:上升沿、下降沿、双沿、高电平、低电平触发

    RTT是将GPIO重新编号,然后根据唯一编号进行控制:有2种方式可以获取引脚编号:使用宏定义或者查看PIN 驱动文件

    void rt_pin_mode(rt_base_t pin, rt_base_t mode);
    void rt_pin_write(rt_base_t pin, rt_base_t value);PIN_LOW 低电平,PIN_HIGH 高电平
    int rt_pin_read(rt_base_t pin);
    rt_err_t rt_pin_attach_irq(rt_int32_t pin, rt_uint32_t mode, void (*hdr)(void *args), void *args);
    rt_err_t rt_pin_irq_enable(rt_base_t pin, rt_uint32_t enabled);
    rt_err_t rt_pin_detach_irq(rt_int32_t pin);
    #define LED0_PIN        GET_PIN(F,  9) // 通过GET_PIN(F, 9)获得编号
    查看 PIN 驱动代码 drv_gpio.c 文件确认引脚编号。此文件里有一个数组存放了每个 PIN 脚对应的编号信息,如下所示:
    static const rt_uint16_t pins[] =
    {
        __STM32_PIN_DEFAULT,
        __STM32_PIN_DEFAULT,
        __STM32_PIN(2, A, 15),
        __STM32_PIN(3, B, 5),
        __STM32_PIN(4, B, 8),
        __STM32_PIN_DEFAULT,
        __STM32_PIN_DEFAULT,
        __STM32_PIN_DEFAULT,
        __STM32_PIN(8, A, 14),
        __STM32_PIN(9, B, 6),
        ... ...    
    }
    __STM32_PIN(2, A, 15)为例,2 为 RT-Thread 使用的引脚编号,A 为端口号,15 为引脚号,所以 PA15 对应的引脚编号为 2。

  • 相关阅读:
    火星A+B
    分西瓜(DFS)
    H.数7(模拟)
    镜像树(dfs)
    锐雯上单不给就送(矩阵快速幂)
    STL容器
    优先队列(和fence repair完全一样)
    x位全排列(next_permutation)
    fence repair(队列水过)
    线段相交
  • 原文地址:https://www.cnblogs.com/jieruishu/p/10270631.html
Copyright © 2011-2022 走看看