写一个CC2530驱动RC522的读卡器程序,不知道哪错了,请高手驻足指教。
CC2530 RC522
------------- -------------
|P0_4 SSN |--------->|SSN(SDA) |
|P0_5 SCK |--------->|SCK |
|P0_3 MOSI|--------->|MOSI |
|P0_2 MISO|<---------|MISO |
------------- -------------
首先进行初始化InitCC2530():
void InitCC2530(void)
{
InitClockTo32M();//设置晶振
init_port();//初始化串口I/O口
init_Baudrate();//初始化波特率
init_spi();//设置spi通信进入发送模式
}
void InitClockTo32M(void)
{
CLKCONCMD &= ~0x40; //设置系统时钟源为 32MHZ晶振
while(!(CLKCONSTA & 0x40)); //等待晶振稳定
CLKCONCMD &= ~0x47; //设置系统主时钟频率为 32MHZ
}
void init_port(void)
{
InitLed();
P2DIR &=~ 0xC0;// PRIPO=00-->>usart0优先>usart1>定时器1
PERCFG &=~ 0x01; // PERCFG.U1CFG = 0
P0SEL |= 0x2C; // P0_5, P0_3, and P0_2 are peripherals
P0SEL &=~ 0x10; // P0_4 is GPIO (SSN)
P0DIR |= 0x10; //SSN is set as output
P0SEL &=~ 0x01; // P0_0 is GPIO (RST)
P0DIR |= 0x01; // RST is set as output
/*运行串口0接收*/
U0CSR |= 0x40;
}
void init_Baudrate(void)
{
U0GCR |= 8;
U0BAUD |= 59;//波特率小数部分的值。BAUD_E和BAUD_M决定了UART的波特率和SPI的主SCK
}
/*当寄存器UxDBUF 写入字节后,SPI 主模式字节传送就开始了。*/
void init_spi(void)
{
// SPI Master Mode
U0CSR &= ~0xA0;
// Configure phase, polarity, and bit order
U0GCR &= ~0xC0; // CPOL = CPHA = 0 负时钟极性
U1GCR |= 0x20; // ORDER = 1 -->MSB先传送
}
然后就是进行RC522的初始化
请问有什么错误吗?
还是要写中断函数?