CC2541蓝牙学习——I/O口
(2015-04-25 18:39:12)
标签:
it蓝牙 |
分类: 蓝牙 |
学习目标:I/O口的配置,掌握寄存器“PxSEL”和“PxDIR”
1.访问模式
符号 | 访问模式 |
R/W | 可读写 |
R | 只读 |
R0 | 读0 |
R1 | 读1 |
W | 只写 |
W0 | 写0 |
W1 | 写1 |
H0 | 硬件清除 |
H1 |
硬件设置 |
2.端口寄存器(P0,P1,P2)
端口 | Bit位 | 名称 | 初始化 | 读写 | 描述 |
P0 | 7:0 | P0[7:0] | 0XFF | R/W |
端口0,通用I/O端口,可以位寻址。 |
P1 | 7:0 | P1[7:0] | 0XFF | R/W |
端口1,通用I/O端口,可以位寻址。 |
P2 | 7:5 | --- | 000 | R0 | 未使用 |
P2 | 4:0 | P2[4:0] | 0x1F | R/W |
端口2,通用I/O端口,可以位寻址。 |
注意:复位后,所有引脚默认的模式为:带上拉的输入通用I/O口
3.功能选择寄存器(P0SEL,P1SEL,P2SEL)
端口 | Bit位 | 名称 | 初始化 | 读写 | 描述 |
P0SEL | 7:0 | SELP0_[7:0] | 0x00 | R/W |
P0.7--P0.0的功能选择(0:通用I/O |
P1SEL | 7:0 | SELP1_[7:0] | 0x00 | R/W |
P1.7--P1.0的功能选择(0:通用I/O |
P2SEL | 7 | --- | 0 | R0 | 未使用 |
P2SEL | 6 | PRI3P1 | 0 | R/W |
端口1外设优先级控制,当PERCFG分配USART0和USART1相同引脚的时候,这些位将确定优先级。0:USART |
P2SEL | 5 | PRI2P1 | 0 | R/W |
端口1外设优先级控制,当PERCFG分配USART1和TIMER3相同引脚的时候,这些位将确定优先级。0:USART |
P2SEL | 4 | PRI1P1 | 0 | R/W |
端口1外设优先级控制,当PERCFG分配TIMER1和TIMER4相同引脚的时候,这些位将确定优先级。0:TIMER |
P2SEL | 3 | PRI0P1 | 0 | R/W |
端口1外设优先级控制,当PERCFG分配USART0和TIMER1相同引脚的时候,这些位将确定优先级。0:USART |
P2SEL | 2:0 | SELP2_[2:0] | 000 | R/W |
P2.2--P2.0的功能选择(0:通用I/O |
这三个寄存器,P0SEL和P1SEL的每一位控制P0、P1的8个I/O口的功能,P2SEL的低三位控制P2端口的P2.2--P2.0功能,其他高P2SEL
6:3是用来控制端口1外设的优先级的,具体的在后面再说明。
4.方向寄存器(P0DIR,P1DIR,P2DIR)
端口 | Bit位 | 名称 | 初始化 | 读写 | 描述 |
P0DIR | 7:0 | DIRP0_[7:0] | 0x00 | R/W |
P0.7--P0.0的方向(0:输入 |
P1DIR | 7:0 | DIRP1_[7:0] | 0x00 | R/W |
P1.7--P1.0的方向(0:输入 |
P2DIR | 7:6 | PRIP0[1:0] | 00 | R/W |
端口0外设优先级控制,当PERCFG分配给一些外设相同引脚的时候,这些位将确定优先级。优先级从前到后如下:00:USART |
P2DIR | 5 | --- | 0 | R0 | 未使用 |
P2DIR | 4:0 | DIRP2_[4:0] | 00000 | R/W |
P2.4—P2.0的方向(0:输入 |
5.输入模式寄存器(P0INP,P1INP,P2INP)
端口 | Bit位 | 名称 | 初始化 | 读写 | 描述 |
P0INP | 7:0 | MDP0_[7:0] | 0x00 | R/W |
P0.7--P0.0的输入模式: |
P1INP | 7:2 | MDP1_[7:2] | 000000 | R/W | P1.7—P1.2的输入模式:0:上拉/下拉(具体看PDUP1设置);1:三态 |
P1INP | 1:0 | --- | 00 | R0 | 未使用 |
P2INP | 7 | PDUP2 | 0 | R/W | 端口2上拉/下拉选择,对所有端口2引脚设置为上拉/下拉输入:0:上拉;1:下拉 |
P2INP | 6 | PDUP1 | 0 | R/W | 端口1上拉/下拉选择,对所有端口1引脚设置为上拉/下拉输入:0:上拉;1:下拉 |
P2INP | 5 | PDUP0 | 0 | R/W | 端口0上拉/下拉选择,对所有端口0引脚设置为上拉/下拉输入:0:上拉;1:下拉 |
P2INP | 4:0 | MDP2_[4:0] | 00000 | R/W |
P2.4—P2.0的输入模式: |
总结:I/O口用做输出口时配置过程
- 选择I/O口功能为通用I/O口
- 配置I/O口方向为输入
#include
typedef unsigned char uchar;
typedef unsigned int uint;
#define LED1 P1_0
#define LED2 P1_1
#define LED3 P1_4
#define LED4 P0_1
void InitClock(void)
{
}
void InitLED(uchar mode)
{
}
void Delay1ms(unsigned int uiDelay)
{
}
int main(void)
{
}
前一篇:CC2541蓝牙学习——时钟设置