微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > CC2530设置spi主模式接RC522从spi模式

CC2530设置spi主模式接RC522从spi模式

时间:10-02 整理:3721RD 点击:
写一个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的初始化
请问有什么错误吗?
还是要写中断函数?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top