智能车制作

标题: 关于SPI [打印本页]

作者: 六个柚子    时间: 2013-2-20 17:33
标题: 关于SPI
void SPI0_Init(void)
{
SIM_SCGC6|=SIM_SCGC6_DSPI0_MASK;//打开spi0时钟
PORTC_PCR4=PORT_PCR_MUX(2);//PC4,SPI0 PCS0
PORTC_PCR5=PORT_PCR_MUX(2);//PC5,SPI0 SCK
PORTC_PCR6=PORT_PCR_MUX(2);//PC6,SPI0 SOUT
        

SPI0_MCR|=SPI_MCR_MSTR_MASK;//主机模式
        SPI0_MCR|=SPI_MCR_DCONF(0x0);//SPI
        SPI0_MCR|=SPI_MCR_CONT_SCKE_MASK;//使能串行时钟 SCK连续运行
SPI0_MCR|=SPI_MCR_PCSIS(1);//PCS0低电平有效
SPI0_MCR&=~SPI_MCR_MDIS_MASK;//使能DSPI时钟
        SPI0_MCR|=SPI_MCR_CLR_TXF_MASK; //清除发送队列FIFO计数器
        SPI0_MCR|=SPI_MCR_CLR_RXF_MASK;//清除接收队列FIFO计数器
SPI0_MCR&=~SPI_MCR_HALT_MASK;//启动SPI模块

SPI0_CTAR0&=~SPI_CTAR_DBR_MASK;//原倍波特率
SPI0_CTAR0=SPI_CTAR_FMSZ(7);//帧大小为8bit
SPI0_CTAR0|=SPI_CTAR_PBR(2);//预分频12M
SPI0_CTAR0|=SPI_CTAR_BR(2);//最终分频2MHz
}

void SPI0_Wt(unsigned char cmd)
{
SPI0_PUSHR=cmd;
while((SPI0_SR&SPI_SR_TCF_MASK)==0);//等待传送完成
SPI0_SR|=SPI_SR_TCF_MASK;//清除标志
}




求教,写数了,sck却没有输出,是设置有问题吗?


作者: 六个柚子    时间: 2013-2-20 19:07
顶起来
作者: 信雪神话    时间: 2013-2-21 11:14
什么芯片的?
作者: 六个柚子    时间: 2013-2-21 11:32
信雪神话 发表于 2013-2-21 11:14
什么芯片的?

K60
作者: dlyt03    时间: 2013-2-21 13:59
顶个,正好获得一块K60,学习下!!
作者: 传达666    时间: 2013-2-23 01:34
有源代码就好了
作者: 猎鹰2013    时间: 2013-6-21 18:02
请问怎么知道SPI模块初始化成功与否啊  最近在弄SPI  郁闷着 多谢多谢PI




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2