我用的编译环境是IARfor51 7.30B,再介绍一下我的开发板的情况,ZigBee模块用的是CC2430.这块芯片是一款Soc的芯片,集成了8051内核和ZigBee射频部分,只要很少的外部电路就可以搭建一个射频模块。
因为其中的是8051的内核,所有对于熟悉8051系列的同学们来说,基本的一些操作就很简单了,这里我们在温习一下,顺便对CC2430芯片进行一下熟悉。
嵌入式的一大特点是其底层的软件和硬件紧密相关,如果没有数字电路的知识,那么作起来是很困难的。我们先介绍一下基本的管脚分配情况:
P0的2和3接到了一个232电压转换芯片上,可以用来和PC进行通信,LCD_RST,LCD_CS,接的是LCD的复位和片选端,这里我用到的LCD是兼容PCD8544的NOkia5110的LCD,为SPI总线LCD,84X48点阵。CC2430_MOSI,CC2430_CLK都接到LCD上了。P1_0接到一个调试LED上面,为高电平点亮。
下面的第一个实验就很简单了,我们只要把P1_0配置为通用IO,输出方式,然后从这里输出高电平,那么就可以点亮这个LED了。用到的寄存器为:
P1配置寄存器P1SEL,
P1方向寄存器P1DIR
程序如下:
#include<ioCC2430.h>
#define DEBUG_LED P1_0
void delay(unsigned int n){
//26 cycles delay
while(--n)asm("NOP");
}
void LEDInit(){
P1SEL &= 0XFE; //P1_0 defined General purpose I/O
P1DIR |= 0X01; //P1_0 defined Output
}
main(){
LEDInit();
while(1){
DEBUG_LED = 1; //Led light
delay(50000);
DEBUG_LED = 0;
delay(50000);
}
}
编译通过以后就用TI的官方工具SmartRF Flash Programmer将生成的HEX文件,烧录到CC2430吧,激动的时刻,呵呵如果点亮了这个小小的LED那么恭喜你,你的硬件因该是没有问的了,一个小小的胜利后我们就有更多的勇气和信心前进咯!
源程序,以及编译设置https://static.assets-stash.eet-china.com/album/old-resources/2010/1/15/e19724a5-d9ec-4481-8aef-bc0b4fb1e122.rar
用户899066 2010-3-12 16:10