|
发表于 2015-9-29 00:00:07
|
显示全部楼层
SPI 初始化部分的BUG还没解决啊?
UI上默认是SPI MASTER,但生成的代码默认模式是SPI SLAVE
上次我就因为这个问题折腾了几天。。
enum emSpiMode
{
E_SPI_SLAVE = 0x0, /**< Select SPI Master mode */
E_SPI_MASTER /**< Select SPI Slave mode */
};
void DrvSPI_Init(void)
{
// SCK,MISO,MOSI,SS = PB[5,4,3,2]
if(SPI_SPIM == E_SPI_MASTER)
{
// SS = 1
PORTB = (PORTB & 0xc3) | 0x4;
// SCK,MISO,MOSI,SS = O,I,O,O
DDRB = (DDRB & 0xc3) | 0x2c;
}
else
{
PORTB = (PORTB & 0xc3);
// SCK,MISO,MOSI,SS = O,I,O,O
DDRB = (DDRB & 0xc3) | 0x10;
}
//
SPCR = (SPI_SPIIEN << SPIE) | (SPI_SPIDORD << DORD) | (SPI_SPITYPE << CPHA) | \
(SPI_SPIM << MSTR) | ((SPI_SPICLK & 0x3) << SPR0);
//
SPSR = (SPI_SPICLK >> 2) & 1;
//
SPCR |= (1 << SPE);
}
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|