杰理AC692X

您所在的位置:网站首页 杰理ac6925a芯片怎样 杰理AC692X

杰理AC692X

2023-07-06 13:59| 来源: 网络整理| 查看: 265

最近在学习杰理AC692X,将收获及遇到的一些问题写成博客,方便以后工作中使用 普通IO口的输入输出配置很简单,仿照led.c key_drv_io.c就可以完成IO的基本配置,需要注意的是要解决SDK默认配置冲突的问题,把冲突的IO口的其他地方配置直接屏蔽

#define LED_PORTX JL_PORTA #define LED_BLUE BIT(3) #define LED_RED BIT(2) #define LED_INIT_EN() do{LED_PORTX->PU &= ~LED_BLUE;LED_PORTX->PD &= ~LED_BLUE;\ LED_PORTX->DIR &= ~LED_BLUE;LED_PORTX->PU &= ~LED_RED;\ LED_PORTX->PD &= ~LED_RED;LED_PORTX->DIR &= ~LED_RED;}while(0) #define LED_INIT_DIS() do{LED_PORTX->PU &= ~LED_BLUE;LED_PORTX->PD &= ~LED_BLUE;\ LED_PORTX->DIR |= LED_BLUE;LED_PORTX->PU &= ~LED_RED;\ LED_PORTX->PD &= ~LED_RED;LED_PORTX->DIR |= LED_RED;}while(0) #define B_LED_ON() do{LED_PORTX->OUT |= LED_BLUE;}while(0) #define B_LED_OFF() do{LED_PORTX->OUT &= ~LED_BLUE;}while(0) #define R_LED_ON() do{LED_PORTX->OUT |= LED_RED;}while(0) #define R_LED_OFF() do{LED_PORTX->OUT &= ~LED_RED;}while(0)

下面是我自己改的一个输入一个输出

#define Motor_PORTX JL_PORTB #define Motor_BIT BIT(5) #define Motor_INIT_EN() do{Motor_PORTX->PU &= ~Motor_BIT;Motor_PORTX->PD &= ~Motor_BIT;Motor_PORTX->DIR &= ~Motor_BIT;}while(0) #define Motor_INIT_DIS() do{Motor_PORTX->PU &= ~Motor_BIT;Motor_PORTX->PD &= ~Motor_BIT;Motor_PORTX->DIR |= Motor_BIT;}while(0) #define Motor_ON() do{Motor_PORTX->OUT |= Motor_BIT;}while(0) #define Motor_OFF() do{Motor_PORTX->OUT &= ~Motor_BIT;}while(0) /// #define wakeup_PORTX JL_PORTA #define wakeup_BIT BIT(0) #define wakeup_INIT_EN() do{wakeup_PORTX->PU |= wakeup_BIT;wakeup_PORTX->PD &= ~wakeup_BIT;wakeup_PORTX->DIR |= wakeup_BIT;}while(0) #define wakeup_INIT_DIS() do{wakeup_PORTX->PU &= ~wakeup_BIT;wakeup_PORTX->PD &= ~wakeup_BIT;wakeup_PORTX->DIR |= wakeup_BIT;}while(0) #define read_wakeup() (wakeup_PORTX->IN & wakeup_BIT)

AC692X一共四组GPIO口,每个IO口都可以独立配置成输入输出

PORTX->OUT 输出寄存器 0:输出0 1:输出1 默认0 PORTX->IN 输入寄存器 0:输入0 1:输入1 默认x PORTX->DIR 方向寄存器 0:IO设为输出 1:输入 默认1 PORTX->DIE 输入允许寄存器 0:不允许输入 1:允许输入 默认1 PORTX->PU 上拉使能寄存器 0:关闭上拉 1:打开上拉 默认0 PORTX->PD 下拉使能寄存器 0:关闭下拉 1:打开下拉 默认0 PORTX->HD PORTX->HD0 PORTX->HD1

一些IC具有PR口,这些IO口既可以做ad也可以做普通io口,下面这些函数用于配置PR口配置输入输出 特别注意的是如果要使用PR口做普通io口输入输出的话一定要关闭PR口下拉4秒复位的功能,就算是配置成输出高电平,外围电路经电阻接地,还是会不停的复位

int rtc_port_4s_reset_close(void);//关闭四秒复位 //PR PORT #define PORTR0 0 #define PORTR1 1 #define PORTR2 2 #define PORTR3 3 //PR PORT OPERATIONS void PORTR_DIR(u8 port, u8 val); void PORTR_OUT(u8 port, u8 val); void PORTR_HD(u8 port, u8 val); void PORTR_PU(u8 port, u8 val); void PORTR_PD(u8 port, u8 val); void PORTR_DIE(u8 port, u8 val); void PORTR_PWM_OE(u8 port, u8 val); u8 PORTR_IN(u8 port);


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3