6573 GPIO 设置

       

       参照如下:


图片



GPIO  分为4类模式  0是GPIO模式,其他根据datasheet 区别


GPIO DIR  GPIO_DIR_IN =0输入   GPIO_DIR_OUT  =1 输出  Default =GPIO_DIR_IN =0

是输入还是输出。


GPIO_PULLEN           GPIO_PULL_DISABLE =0; GPIO_PULL_

ENABLE=1; Default =GPIO_PULL_ENABLE=1;

能否拉高或拉低、默认可以拉

if GPIO_PULL = GPIO_PULL_ENABLE;

then  you can config  GPIO_PULL_DOWN or GPIO_PULL_UP;

是上拉还是下拉

GPIO_PULL_DOWN=0; GPIO_PULL_UP=1    GPIO_PULL_Default =GPIO_PULL_DOWN =0;



GPIO_INVERSION

数据反响

GPIO_DATA_UNINV =0;

GPIO_DATA_INV =1

GPIO_DATA_INV_Default= GPIO_UNINV=0;

可以反向 GPIO_DATA_INV; 不可以反向 GPIO_DATA_UNINV=1;

默认不可以反向


if GPIO PIN  is  output pin then config  High or Low


GPIO_OUT_ZERO =0 (Low)

GPIO_OUT_ONE = 1 (High)

GPIO_OUT_DEFAULT = GPIO_OUT_ZERO;



GPIO_CLKOUT


6573 have seven  CLK OUT   source;

1)  CLK_OUT_UNSUPPORT =-1

      CLK_OUT0,

      CLK_OUT1,

     .......

      CLK_OUT7,


each clock out put  source can  be config  as flow these mode


 

图片

 


S32 mt_set_gpio_dir(pin,dir);  return 0

S32 mt_get_gpio_dir(pin);   return value is  (out or in)

S32 mt_set_gpio_pull_enable(pin,enable);  pin is gpio pin number; enable is gpio_pull_enable

S32 mt_get_gpio_pull_enable(pin);  return is gpio enable;


S32 mt_set_gpio_pull_select(pin,enPull); en pull is GPIO_PULL is down or up;


S32  mt_get_gpio_pull_select(pin)l return  GPIO_PULL (Down or up);


S32 mt_set_gpio_inversion(pin,unInv); UnInv is Uninversion or inversion;

S32 mt_get_gpio_inversion(pin);


S32 mt_set_gpio_out(pin,out); out is zero or high

S32  mt_get_gpio_out(pin);    return is zero(0) or high(1)


S32  mt_get_gpio_in(pin)  return  is zero (0) or high (1)

S32 mt_set_gpio_in(pin,in)  in is zero (0) or high (1)


S32 mt_set_gpio_mode(pin,mode);

S32 mt_get_gpio_mode(pin);


S32 mt_set_gpio_clock_output(CLKOUT, CLKsrc);



### GPIO 设置代码示例 在嵌入式开发中,通用输入/输出 (GPIO) 是一种常见的硬件接口,用于控制外部设备或读取传感器数据。以下是基于 C 和 Python 的两种常见平台(如 Raspberry Pi 或 STM32)上的 GPIO 配置方法。 #### 基于 Raspberry Pi 的 Python 示例 Raspberry Pi 提供了一个名为 `RPi.GPIO` 的库来简化 GPIO 控制操作[^1]: ```python import RPi.GPIO as GPIO import time # 使用 BCM 编号模式 GPIO.setmode(GPIO.BCM) # 定义引脚编号 pin = 18 # 将指定引脚设置为输出模式 GPIO.setup(pin, GPIO.OUT) try: while True: # 输出高电平 GPIO.output(pin, GPIO.HIGH) print("Pin is HIGH") time.sleep(1) # 输出低电平 GPIO.output(pin, GPIO.LOW) print("Pin is LOW") time.sleep(1) finally: # 清理 GPIO 设置 GPIO.cleanup() ``` 上述代码展示了如何通过循环切换 GPIO 引脚的状态,在实际应用中可以用来驱动 LED 等简单外设[^1]。 --- #### 基于 STM32 的 C 示例 对于微控制器如 STM32,通常会使用 HAL 库或其他底层 API 来配置 GPIO。以下是一个简单的初始化函数示例[^2]: ```c #include "stm32f4xx_hal.h" void GPIO_Init(void) { __HAL_RCC_GPIOA_CLK_ENABLE(); // 启用 GPIOA 时钟 GPIO_InitTypeDef GPIO_InitStruct = {0}; // 配置 PA5 作为推挽输出模式 GPIO_InitStruct.Pin = GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 推挽输出 GPIO_InitStruct.Pull = GPIO_NOPULL; // 不带上下拉电阻 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; // 低速模式 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); } int main(void) { HAL_Init(); GPIO_Init(); while (1) { HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); // 设置 PA5 为高电平 HAL_Delay(1000); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET); // 设置 PA5 为低电平 HAL_Delay(1000); } } ``` 此代码片段演示了如何利用 STM32 的 HAL 库实现对特定 GPIO 引脚的高低电平切换功能[^2]。 --- #### 关键概念说明 - **BCM 模式 vs BOARD 模式**: 在 Raspberry Pi 中,可以选择 BCM 或 BOARD 模式定义引脚编号。前者依据芯片内部编号,后者按照物理针脚顺序排列[^1]。 - **推挽输出与开漏输出**: 微控制器中的 GPIO 可能支持多种工作方式,其中最常用的是推挽输出和开漏输出。推挽适用于大多数场景,而开漏则常用于 I²C 总线通信等特殊需求[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值