【从0到1搭建LoRa物联网】4、国产LoRa终端ASR6505普通GPIO

系列文章:
【从0到1搭建LoRa物联网】1、LoRa物联网的架构
【从0到1搭建LoRa物联网】2、终端设备开发方式
【从0到1搭建LoRa物联网】3、国产LoRa终端ASR6505软硬件

1、普通GPIO说明

ASR6505引出了5个引脚作为普通GPIO,其中GPIO0用作射频开关控制、GPIO1用作NSS控制引脚,因此可二次开发的只剩下3个,开发板中H2针脚正是引出的普通GPIO。
【从0到1搭建LoRa物联网】4、国产LoRa终端ASR6505普通GPIO_第1张图片

与STM8对应关系如下:
ASR6505 STM8
GPIO2 PC4
GPIO3 PE6
GPIO4 PE7

2、SDK中关于GPIO的操作

SDK关于GPIO的库函数主要在gpio.c、gpio.h、gpio-borad.c、gpio-borad.h文件中,其中gpio.c、gpio.h是剥离硬件的一些关于gpio操作的通用函数,gpio-borad.c、gpio-borad.h里面主要是硬件相关的gpio的操作。

gpio初始化函数:

void GpioInit( Gpio_t *obj, PinNames pin, PinModes mode,  PinConfigs config, PinTypes type, uint32_t value ) 

Gpio_t *obj是定义一个gpio对象;PinNames pin是具体的引脚;PinModes mode是初始化为输入或输出;PinConfigs config是开漏或者推挽输出;PinTypes type是上下拉设置;uint32_t value 是初始值。

gpio输出函数:

 void GpioWrite( Gpio_t *obj, uint32_t value ) 

Gpio_t *obj同上一样,定义的gpio对象;uint32_t value 。输出值,一般是0或1。

gpio读取函数:

uint32_t GpioRead( Gpio_t *obj ) 

Gpio_t *obj同上一样;返回值是gpio的值。

3、实验设计

使用GPIO2输出高低电平,逻辑分析仪抓取波形。

4、代码实现

periph_gpio.h/c部分代码:

#define ASR6505_GPIO2     PC_4
#define ASR6505_GPIO3     PE_6
#define ASR6505_GPIO4     PE_7
Gpio_t  Gpio2;

void GPIO_PeriphInit(void)
{
     
  GpioInit( &Gpio2, ASR6505_GPIO2, PIN_OUTPUT, PIN_PUSH_PULL, PIN_PULL_UP, 1);
}
void GPIO_SetHigh(void)
{
     
  GpioWrite(&Gpio2,1);
}
void GPIO_SetLow(void)
{
     
  GpioWrite(&Gpio2,0);
}

主函数部分代码:

int main( void )
{
        
    BoardInitMcu( );
    BoardInitPeriph( );
    
    printf("ASR6505 GPIO  test!\r\n");
    GPIO_PeriphInit();
    
    while(1)
    {
     
      GPIO_SetHigh();
      DelayMs(500);
      GPIO_SetLow();
      DelayMs(200);
      printf("-------------------------------------------------- \r\n\r\n");
    }
}

5、实现现象

【从0到1搭建LoRa物联网】4、国产LoRa终端ASR6505普通GPIO_第2张图片

欢迎关注微信公众号【物联网思考】,获取资料,《从0到1搭建LoRa物联网》系列的所有软硬件资料将会分享在公众号。
【从0到1搭建LoRa物联网】4、国产LoRa终端ASR6505普通GPIO_第3张图片

你可能感兴趣的:(从0到1搭建LoRa物联网,LoRa教程,LoRa组网,LoRa物联网,LoRa开发板,物联网)