打印
[学习笔记]

杰发科技AC7802x测评】+按键外部中断测评

[复制链接]
294|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
     AC7802x GPIO通用输入输出( General-Purpose Input/Output, GPIO) 模块通过 AHB 访问, 以实现最高的引脚性能。GPIO 引脚支持如下模式:
最多支持 27 I/O
输出状态: 推挽或开漏 (I2C 有关)
输出数据来自输出寄存器 GPIO_ODR 或 外设 (可选功能输出)
每个 I/O 的驱动能力选择
输入状态: 浮空, 上拉/下拉, 模拟(ADC/ACMP 有关)
输入数据至输入数据寄存器 GPIO_IDR 或外设(可选功能输入)
位置位和复位寄存器 GPIO_BSRR 用于按位写入访问 GPIO_ODR
高灵活度的引脚复用, 允许将 I/O 引脚用作 GPIO 或作为多种外设功能之一
可配置上升沿/下降沿/双边沿中断
低功耗模式唤醒中断 [size=13.3333px]

GPIO 结构框图:





中断



GPIO 以组的形式划分, 每 16 个 IO 构成一组。 以图中 GPIO[y+x*16]为例, ‘ y’ 表示某一组 IO 中的第 y 个 PIN 脚, x*16 表示第 x 组 GPIO。 如 GPIO[1+0*16]表示 GPIOA_PIN_1, GPIO[1+1*16]表示 GPIOB_PIN_1。外部中断线与中断向量的对应关系:
1) 当 m≤2 时, EXTI_In[m]对应着中断向量 EXTIm_IRQn
2) 当 3≤m≤8 时, EXTI_In[m]对应着中断向量 EXTI3_8_IRQn
30 当 9≤m≤15 时, EXTI_in[m]对应着中断向量 EXTI9_15_IRQn



用户按键,与LED原理图

GPIO初始化:根STM32变成思路是一样的。


void GPIO_LedInit(void)
{
    /*初始化引脚功能,如果引脚上电后默认为GPIO,可省略掉初始化步骤.
      有部分引脚上电默认为非GPIO,则必须选择其功能为GPIO才能作为GPIO使用.*/
    GPIO_SetFunc(LED1_PORT, LED1_PIN, GPIO_FUN0);/*功能复用选择.*/
    GPIO_SetFunc(LED2_PORT, LED2_PIN, GPIO_FUN0);

    /*设置LED引脚为GPIO输出.*/
    GPIO_SetDir(LED1_PORT, LED1_PIN, GPIO_OUT);
    GPIO_SetDir(LED2_PORT, LED2_PIN, GPIO_OUT);

    LED1_ON;
    LED2_OFF;
}

/*!
* [url=home.php?mod=space&uid=247401]@brief[/url]   key initialization
*
* @param   none
* [url=home.php?mod=space&uid=266161]@return[/url]  none
*/
void GPIO_KeyInit(void)
{
    /*初始化引脚功能,如果引脚上电后默认为GPIO,可省略掉初始化步骤.
      有部分引脚上电默认为非GPIO,则必须选择其功能为GPIO才能作为GPIO使用.*/
    GPIO_SetFunc(KEY_PORT, KEY_PIN, GPIO_FUN0); /*功能复用选择.*/

    /*设置按键引脚为输入,检测按键动作.*/
    GPIO_SetDir(KEY_PORT, KEY_PIN, GPIO_IN);    /*设置为输入模式.*/

    /*使能KEY1的外部中断,设置为下降沿产生中断,当按下按键时产生中断.*/
    GPIO_EnableExtInterrupt(KEY_PORT, KEY_PIN, EXTI_TRIGGER_FALLING);

    /*设置外部中断,中断回调函数.*/
    GPIO_SetCallback(KEY_PIN, EXTI_Key_Callback);
}














使用特权

评论回复

相关帖子

沙发
yangxiaor520| | 2023-7-1 11:37 | 只看该作者
二姨家的帖子插入视频功能终于正常了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:项目经理
简介:资深嵌入式开发工程师

64

主题

123

帖子

2

粉丝