PIC32-IO寄存器及CN中断的设置
学习一下PIC32的IO寄存器
I/O寄存器
寄存器
TRISx
TRIS(tristate):数据方向寄存器,决定引脚是输入还是输出,如果数据方向位为1,则引脚为输入引脚,反之则为输出引脚,复位后所有端口引脚被定义为输入引脚
LATx
LAT(latch): 输出锁存器,锁存端口输出的值,读LAT读到的是锁存器中的值,写LAT写锁存器的值
PORTx
PORT(port):端口寄存器,读PORT读到的是端口电平的值(与LAT做区分),写PORT写的是LAT锁存器的值
ODCx
ODC(open drain control):漏极开路控制寄存器,配置端口为数字输出或漏极开路输出,为1时配置为漏极开路输出
ANSELx
ANSEL(analog select):模拟端口控制寄存器
- 设置为模拟输入引脚必须将其对应ANSEL和TRIS位置1;
- 设置为数字引脚必须清零ANSEL;
- ANSELx默认值为0xFFFF,共用模拟功能的所有引脚默认情况下均为模拟引脚
CNENx
CNEN(change notification interrupt enable):输入电平变化通知使能寄存器,置1时使能端口引脚,用于在电平状态变化时发出中断请求
CNSTATx
CNSTAT(change notification status):指示字上次读取PORTx位以来对应引脚电平是否发生了变化
CNPUx
CNPU(change notification pull up):上拉控制寄存器,置1时借助I/O引脚内部的弱上拉电路上拉引脚
CNPDx
CNPD(change notification pull down):下拉控制寄存器,置1时借助I/O引脚内部的弱下拉电路下拉引脚。
CNCONx
CNCON(change notification control):电平变化通知控制寄存器,置1时允许电平变化通知
快速原子位寄存器
- CLR:清零寄存器
- SET:置一寄存器
- INV:翻转寄存器
CN中断设置
以RB7为例:
若有中断服务函数:
1 | |
可设置中断如下:
1 | |
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!