微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > cc2530 spi通信

cc2530 spi通信

时间:10-02 整理:3721RD 点击:

我想用CC2530的UART0的Alternative 1 作为SPI的master。程序如下

void init_port(void)
{
IO_FUNC_PORT_PIN(1, 0, IO_FUNC_GIO); //将P1_0设置为普通的IO口
IO_DIR_PORT_PIN(1, 0, IO_OUT); //设置为输出

IO_FUNC_PORT_PIN(1, 1, IO_FUNC_GIO); //将P1_1设置为普通的IO口
IO_DIR_PORT_PIN(1, 1, IO_OUT); //设置为输出



PERCFG |= 0x00; // PERCFG.U0CFG = 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
}
/******************************************************************************
* @fn init_Baudrate
*
* @brief
* Initializes components Baudrate application example.
*
* Parameters:
*
* @param void
*
* @return void
*
******************************************************************************/
void init_Baudrate(void)
{


U0BAUD = 0x3B; // BAUD_M = 59 9600 F=32M
U0GCR |= 0x08; // BAUD_E = 8
}

/*******************************************************************************
* @fn main
*
* @brief
*
* @param none
*
* @return none
*******************************************************************************/

void main(void)
{
halMcuInit(); // 选择32MHz晶体振荡器作为系统时钟源(主时钟源)//设置时钟源32MHZ
init_port(); //初始化端口
init_Baudrate(); //初始化波特率


// SPI Master Mode


U0CSR &= ~0xA0; //选择为SPI为Master


// Configure phase, polarity, and bit order
U0GCR &= ~0xC0; // CPOL = CPHA = 0 SHANG SHENG YAN CAI YANG
U0GCR |= 0x20; // ORDER = 1 MSB first

LED1=0;

unsigned char i;
char txBufferMaster[]="hello world";
while(1)
{
for (i = 0; i <= sizeof(txBufferMaster); i++)
{
SSN = LOW;


U0DBUF = txBufferMaster[i]; //加入要发送的数据


while (!U0TX_BYTE);
SSN = HIGH;


U0TX_BYTE = 0;
}
LED1=~LED1;
halMcuWaitMs(1000);
}
}

编译时提示

Error[Pe020]: identifier "U0TX_BYTE" is undefined 

就是U0TX_BYTE在头文件里面没有定义,我查看了头文件,只有对 USART 1 的定义

/* USART 1 Control and Status */
SFRBIT( U1CSR , 0xF8, U1MODE, U1RE, U1SLAVE, U1FE, U1ERR, U1RX_BYTE, U1TX_BYTE, U1ACTIVE )
SFR( U1DBUF , 0xF9 ) /* USART 1 Receive/Transmit Data Buffer */
SFR( U1BAUD , 0xFA ) /* USART 1 Baud Rate Control */
SFR( U1UCR , 0xFB ) /* USART 1 UART Control */
SFR( U1GCR , 0xFC ) /* USART 1 Generic Control */
SFR( P0DIR , 0xFD ) /* Port 0 Direction */
SFR( P1DIR , 0xFE ) /* Port 1 Direction */
SFR( P2DIR , 0xFF ) /* Port 2 Direction

当我选择UART1的Alternative 2 作为SPI的master,实验成功。

我的问题是,为什么头文件里面没有对UART0做像UARTI一样的定义呢?

这里有uart0的例程,楼主可以参考下

http://wenku.baidu.com/link?url=4kZCAq87BmnGJcjYDZnn751D2qLjzrHj0kKy9VhLSjraFEu0OB9_RJQYB2Z-gm8j04Mx7FG5D6owv_otKRzkMj9BV-3J3MsPpe-f-PqGSiW

好的,谢谢您。基本实现了功能,但是还是不太明白,在头文件里面,为什么串口0没有与串口1类似的定义。

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

网站地图

Top