以下代码是我UASRT1用作SPI的相关配置代码:
unsigned char temp = 0;
CLKCONCMD = 0x80; while (CLKCONSTA != 0x80);
PERCFG |= 0x02;
P1SEL |= 0xE0;
P1SEL &= ~0x10;
P1DIR |= 0x10;
U1BAUD = 0x00;
U1GCR |= 0x11;
U1CSR &= ~0xA0;
U1GCR &= ~0xC0;
U1GCR |= 0x20;
已验证可用。
但是当我把USART0用作SPI时却不行了,以下是我USART0用作SPI的相关配置代码:
CLKCONCMD = 0x80;
while (CLKCONSTA != 0x80);
PERCFG |= 0x01; //USART0映射到备用位置2
P2SEL &= ~(1<<6); //USART0优先
P2SEL &= ~(1<<3);
P1SEL |= 0x38; //P1.3,4,5作外设SPI用
P1SEL &= ~0x04; //P1.2作普通IO,片选功能
P1DIR |= 0x10; //P1.2输出
P1SEL &= ~(1<<1);
P1DIR |= 1<<1;
P1_1 = 0;
U0BAUD = 0x00;
U0GCR |= 0x11;
U0CSR &= ~0xA0;
U0GCR &= ~0xC0;
U0GCR |= 0x20; // MSB
SPI不通,不能用,请问我这配置有问题吗,我反复看了几遍数据手册,觉得应该没问题啊,请大神帮忙看看
补充一下,我这是裸机程序,没带协议栈。