TI CC2530 学习笔记-1-NewBit-CC2530-IO-LED
驱动LED只需要IO口能输出高低电平就可以,要做呼吸灯的话需要用到PWM,这里不做介绍;要让CC2530的IO能输出高电平或者低电平需要配置两个寄存器:PxSEL 和 PxDIR;至于LED是高电平亮还是低电平亮取决于外围电路。
寄存器 PxSEL:其中 x 为端口的标号 0~2,用来设置端口的每个引脚为通用 I/O 或者是外部设备 I/O 信号 。
作为缺省的情况,每当复位之后,所有的数字输入/输出引脚都设置为通用输入引脚。
寄存器 PxDIR:在任何时候,要改变一个端口引脚的方向,就使用寄存器 PxDIR 来设置每个端口引脚为输入或输出。因此只要设置 PxDIR 中的指定位为 1,其对应的引脚口就被设置为输出了。
- 配置CC2530时钟频率为外部32MHz石英晶振
CLKCONCMD &= ~0x47; //选择外部32MHZ时钟, 不分频
while( (CLKCONSTA & 0x47) != 0x00 ); //切换时钟源后再次等待稳定
- 配置3个LED对应IO口为输出模式配置3个LED对应IO口为输出模式
//PxSEL寄存器默认是通用 I/O,所以不用配置
P0DIR |= 0xC0; //配置P06、P07为输出
P2DIR |= 0x02; //配置P21为输出
- 点亮LED
P0_6 = LED_ACTIVE;//高电平,点亮LED
P0_7 = LED_ACTIVE;//高电平,点亮LED
P2_1 = LED_ACTIVE;//高电平,点亮LED
- main函数代码
void main( void )
{
halMcuWaitUs(10000); //等待时间稳定,约10ms
CLKCONCMD &= ~0x47; //选择外部32MHZ时钟, 不分频
while( (CLKCONSTA & 0x47) != 0x00 ); //切换时钟源后再次等待稳定
P0DIR |= 0xC0; //配置IO为输出
P2DIR |= 0x02; //配置IO为输出
P0_6 = LED_ACTIVE;//高电平,点亮LED
P0_7 = LED_ACTIVE;//高电平,点亮LED
P2_1 = LED_ACTIVE;//高电平,点亮LED
while(1)
{
halMcuWaitUs(50000);//50000微妙等于50毫秒
halMcuWaitUs(50000);
halMcuWaitUs(50000);
halMcuWaitUs(50000);
halMcuWaitUs(50000);
halMcuWaitUs(50000);
halMcuWaitUs(50000);
halMcuWaitUs(50000);
halMcuWaitUs(50000);
P0_6 = !P0_6; //高低电平变换
P0_7 = !P0_7;
P2_1 = !P2_1;
}
}