搜索
bottom↓
回复: 1

[求助]使用LPC1114 SPI使用W5200以太网模块

[复制链接]

出0入0汤圆

发表于 2014-1-7 09:49:35 | 显示全部楼层 |阅读模式
使用LPC1114 SPI使用W5200以太网模块,SPI一直失败,不知道什么原因。硬件没有问题,1114 SPI0主SPI1从,发送数据测试没有问题。
我的SPI初始化程序:
void  SPI0Master_Init(void)
{
          uint8_t i,Clear=Clear;
       
    LPC_SYSCON->PRESETCTRL      |= 0x01;                                /* 禁止SPI0复位                 */
    LPC_SYSCON->SYSAHBCLKCTRL   |= (1 << 11);                           /* 打开SPI0外设                 */
    LPC_IOCON->SCK_LOC           = 0x02;                                /* P0.6配置为SCK               */
    LPC_SYSCON->SSP0CLKDIV = 0x04;                   //48M/4=12Mhz

    LPC_SSP0->CR0 = (0x01 << 8) |                                       /* SCR  设置SPI时钟分频         */
                    (0x00 << 7) |                                       /* CPHA 时钟输出相位,0数据在SCK 的第一个时钟沿采样  */
                                                                        /* 仅SPI模式有效                */
                    (0x00 << 6) |                                       /* CPOL 时钟输出极性,0 空闲时为低电平 */
                                                                        /* 仅SPI模式有效                */
                    (0x00 << 4) |                                       /* FRF  帧格式 00=SPI,01=SSI,   */
                                                                        /* 10=Microwire,11=保留         */
                    (0x07 << 0);                                        /* DSS  数据长度,0000-0010=保留,*/
                                                                        /* 0011=4位,0111=8位,1111=16位  */

    LPC_SSP0->CR1 = (0x00 << 3) |                                       /* SOD  从机输出禁能,1=禁止     */
                    (0x00 << 2) |                                       /* MS   主从选择,0=主机,1=从机  */
                    (0x01 << 1) |                                       /* SSE  SSP使能                 */
                    (0x00 << 0);                                        /* LBM  正常模式                */

    LPC_SSP0->CPSR = 2;                                                 /* PCLK分频值 PCLK/(CPSR×[SCR+1]) */
    LPC_SSP0->ICR  = 0x03;                                              /* 中断清除寄存器               */

    //清空RxFIFO,LPC1114收发均有8帧FIFO,每帧可放置4~16位数据
    for ( i = 0; i < 8; i++ )
          {
            Clear = LPC_SSP0->DR;                /* clear the RxFIFO */
          }
}

读写程序,
uint8_t SPI0_SendData(uint8_t data)
{  
        LPC_SSP0->DR = data;
       while ((LPC_SSP0->SR & 0x01) == 0);                             /* 等待TFE置位,即发送FIFO空    */       
        return(LPC_SSP0->DR);
}

uint8_t SPI0_RcvData (void)
{
    LPC_SSP0->DR = 0xFF;                                                /* 发送该数据用以产生时钟       */
    while ((LPC_SSP0->SR & 0x01) == 0);                                /* 等待数据发送完毕             */
   /*
    * 判断当前是否空闲(是否处于TX Or RX)
    */
    while( LPC_SSP0->SR & (1 << 4));
   /*
    * 判断是否已接收到数据,必须判断是否接收完成,否则
    * 新的TX发送再次写入LPC_SSP0->DR寄存器
    */
   while( LPC_SSP0->SR & (1 << 2) == 0x00);
   return (LPC_SSP0->DR);                                        /* 返回接收到的数据             */
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2014-1-8 16:34:45 | 显示全部楼层
已经搞定了,
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 20:38

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表