dsp gpio控制

9 篇文章 0 订阅
1 篇文章 0 订阅
1.1. GPxMUX寄存器

可以称为功能选择寄存器,使用x代替A、B、D、E、F、G,下同。用于确定IO的功能。

GPxMUX.bit.xx = 0,xx通用数字IO
GPxMUX.bit.xx = 1,xx外围IO引脚

1.2. GPxDIR寄存器

可以称为管脚方向寄存器,如果某管脚已经设置为通用数字IO,则GPxDIR寄存器确定此IO是输入还是输出。

GPxDIR.bit.xx = 0,xx配置为输入
GPxDIR.bit.xx = 1,xx配置为输出

器件复位后,GPxMUX与GPxDIR寄存器默认值均为0。

1.3. GPxQUAL寄存器

可以称为量化寄存器,设置采样脉冲。在GPIO配置为通用IO后,F2812的IO引脚有对输入过滤噪声的功能,即对IO输入电平采样,在采样设置的次数后都是一个电平,才会确定有效。假如设置为输入高电平,采样10次,那么这10都为高电平才认为输入高有效,GPxDAT寄存器相应位才会改变。

需要注意的是,F和G组GPIO无此寄存器。

 

2.1. GPxDAT寄存器

可以称为IO数据寄存器,当IO配置为输出时,对GPxDAT中写数据就可以决定输出状态:

GPxDAT.bit.xx = 0,输出0
GPxDAT.bit.xx = 1,输出1

当IO配置为输入时,读取GPxDAT中的数据就可以决定输入状态。
注意:当引脚配置为通用IO时,相应的外设功能必须被屏蔽,否则可能会引发中断。使用GPxDAT 寄存器更改输出引脚的电平时,请务必小心不要错误地更改另一引脚的电平。例如,如果您打算通过使用读取- 修改- 写入指令写入GPADAT 寄存器第0 位来更改GPIOA0 的输出锁定电平。如果另一个I/O 端口A 信号在该指令的读取和写入阶段之间更改了电平,则可能出现问题。另外可以通过使用GPxSET、GPxCLEAR 和GPxTOGGLE 寄存器载入输出锁定来避免这种情况。

2.2. GPxSET寄存器

可以称为置位寄存器,每个IO口都有一个置位寄存器,只能写不能读,也就是只能用在输出上,写1可以使输出为1,写0没有变化。

GPxSET.bit.xx = 0,被忽略;
GPxSET.bit.xx = 1,且引脚配置为输出,则输出1

2.3. GPxCLEAR寄存器

可以称为复位寄存器,每个IO口都有一个复位寄存器,只能写不能读,也就是只能用在输出上,写1可以使输出为1,写0没有变化。

GPxCLEAR.bit.xx = 0,被忽略;
GPxCLEAR.bit.xx = 1,且引脚配置为输出,则输出0

2.4. GPxTOGGLE寄存器

可以称为翻转寄存器,每个IO口都有一个翻转寄存器,只能写不能读,也就是只能用在输出上,写1可以使输出翻转,写0没有变化。

GPxTOGGLE.bit.xx = 0,被忽略;
GPxTOGGLE.bit.xx = 1,且引脚配置为输出,则输出翻转

例子:

void user_gpio_init(void)
{ 
     EALLOW;
     GpioMuxRegs.GPBMUX.bit.PWM7_GPIOB0 = 0;        
     GpioMuxRegs.GPBDIR.bit.GPIOB0 = 1;     // output    
     GpioMuxRegs.GPBQUAL.BIT.QUALPRD = 0x0000;    // Input qualifier disabled   
     EDIS;
}

void user_gpio_set(void)
{
 GpioDataRegs.GPBSET.bit.GPIOB0 = 1;
}

void user_gpio_clear(void)
{
GpioDataRegs.GPBCLEAR.bit.GPIOB0 = 1;
}

使用:

user_gpio_clear();//对gpiob0置0

user_gpio_set();//对gpiob0置1


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值