PB-03F 二次开发——GPIO中断


前言

本文简单介绍PB-03F模组GPIO中断二次开发;

一、函数介绍

下图是引脚对应的宏定义:
图一

1. hal_gpioin_register

图二

2. hal_gpio_init

图三

3. hal_gpio_pin_init

图四

4. hal_gpio_fast_write

图五

5. hal_gpio_read

图六

6. hal_gpioin_enable

图七

7. hal_gpioin_disable

图八

二、工具

1. 硬件

  • PB-03F开发板
  • USB-安卓数据线

2. 软件

二次开发环境keil(安装链接);
SDK下载链接

三、GPIO demo示例

1. main.c

#include "bus_dev.h"
#include "gpio.h"
#include "clock.h"
#include "timer.h"
#include "jump_function.h"
#include "pwrmgr.h"
#include "mcu.h"
#include "gpio.h"
#include "log.h"
#include "rf_phy_driver.h"
#include "flash.h"
#include "version.h"

//宏定义ms级延时宏
#define STANDBY_WAIT_MS(a)  WaitRTCCount((a)<<5)

//定义一个4字节对齐的无符号8位整数
#define     LARGE_HEAP_SIZE  (4*1024)
ALIGN4_U8       g_largeHeap[LARGE_HEAP_SIZE];

volatile uint8 g_clk32K_config;
volatile sysclk_t g_spif_clk_config;

void posedge_int_wakeup_cb(GPIO_Pin_e pin,IO_Wakeup_Pol_e type)
{
	if(type == POSEDGE)
	{
		LOG("int or wakeup(pos):gpio:%d type:%d\n",pin,type);
		hal_gpio_fast_write(P7, 1);
	}
	else
	{
		LOG("error\n");
	}
}

void negedge_int_wakeup_cb(GPIO_Pin_e pin,IO_Wakeup_Pol_e type)
{
	if(type == NEGEDGE)
	{
		LOG("int or wakeup(neg):gpio:%d type:%d\n",pin,type);
		hal_gpio_fast_write(P7, 0);
	}
	else
	{
		LOG("error\n");
	}
}

static void hal_init(void)
{
	//系统时钟初始化,使用串口需要先初始化系统时钟
	clk_init(g_system_clk); //system init
	
	//LOG串口初始化
	LOG_INIT();
	
	//GPIO初始化
	hal_gpio_init();
}

static void simple_code(void)
{
	gpio_pin_e pin0 = P0;
	
	gpio_pin_e pin7 = P7;
	//设置P7引脚为输出模式(红灯)
	hal_gpio_pin_init(pin7, GPIO_OUTPUT);
	
	//使P7引脚输出高电平
	hal_gpio_fast_write(P7, 1);
	hal_init();
	//设置GPIO中断,并设置回调函数
	hal_gpioin_register(pin0,posedge_int_wakeup_cb,negedge_int_wakeup_cb);
}

int main(void)
{
	simple_code();
	while(1)
	{
		
	}
}	

2. 项目框架

图一

3. 注意

为避免不必要的麻烦,建议在SDK框架demo示例同目录下复制demo粘贴项目进行二次开发。

四、 烧录

https://blog.csdn.net/qq_54193285/article/details/136510966?spm=1001.2014.3001.5501
在上面的链接基础下,烧录文件修改为如下图所示的编译出来的文件选择:
在这里插入图片描述

总结

上面就是堆PB-03F模组二次开发的简单介绍。
以上就是本期分享的内容,更多资料可从安信可官网上获取。

官方官网:https://www.ai-thinker.com
开发资料:https://docs.ai-thinker.com/
官方论坛:http://bbs.ai-thinker.com
技术支持:support@aithinker.com

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值