CC2530通用I/O
生活随笔
收集整理的這篇文章主要介紹了
CC2530通用I/O
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
PxSEL寄存器用來設置端口為通用IO還是外設IO,0為通用IO、1為外設IO,默認為通用IO。
PxDIR寄存器用來設置端口為輸入還是輸出,0為輸入、1為輸出,默認為輸入。
在輸入模式下,PxINP寄存器用來設置端口為上拉/下拉或三態,0為上拉 /下拉、1為三態,默認為上拉/下拉。P2INP bit5-7表示端口組0-2上拉或下拉,0為上拉、1為下拉,默認為上拉。
在輸入模式下,可以用于產生中斷,EA位用來表示總中斷,0表示禁止、1表示中斷。
IENx寄存器中PxIE位用來設置端口組中斷,0表示禁止、1表示中斷。
PxIEN寄存器用來設置端口中斷,0表示禁止、1表示中斷。
PICTL寄存器中PxICON位用來設置端口中斷觸發,0表示上升沿、1表示下降沿。 PxIFG寄存器用來表示端口中斷狀態,1表示產生中斷。 PxIF位用來表示端口組中斷狀態,1表示產生中斷。例:1.配置P0_1為輸出 P0SEL &= 0xFD;????//設置P0_1為普通IO口
????????? P0DIR |= 0x02;?????? //設置P0_1為輸出
2.配置P0_5為上拉輸入 P0SEL &= 0xDF;??? //設置P0_1為普通IO口
?????????? P0DIR &= 0xDF;??? //設置P0_1為輸入
?????????? P0INP &= 0xDF;??? //設置P0_1為上拉/下拉
?????????? P2INP &= 0xDF;????//設置P0為上拉
3.配置P2_0為中斷 P2SEL &= 0xFE;??? //設置P2_0為普通IO口
????????? ?P2DIR &= 0xFE;????//設置P2_0為輸入
???????? ? EA = 1;?????????????????? //打開總中斷
???? ????? IEN2 |= 0x02;???????? //打開P2中斷
??????? ?? P2IEN |= 0x01;??????//打開P2_0中斷
???? ????? PICTL = 1;???????????? //下降沿觸發
??????? ?? P2IFG &= 0xFE;??? //清除P2_0中斷狀態
?????????? P2IF = 0;???????????????//清除P2中斷狀態
4.P2_0中斷函數 #pragma vector = P2INT_VECTOR??? //P2中斷向量
__interrupt void io_req() { if((P2IFG & 0x01) == 0x01)??? //P2_0發生中斷 { ;??? //P2_0中斷處理代碼 } P2IFG &= 0xFE;??? //清除P2_0中斷狀態 P2IF = 0;??? //清除P2中斷狀態 }
總結
以上是生活随笔為你收集整理的CC2530通用I/O的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32之DMA原理
- 下一篇: 非985/211毕业的我,该如何在三年内