LPC1700的SSP0问题

[复制链接]
2650|1
 楼主| qchwu 发表于 2013-6-15 00:41 | 显示全部楼层 |阅读模式
在使用LPC1768的过程中,系统已经正常跑起来了,UART也可以工作。但是在启用SSP0做SPI主站时,发现初始化后,运行,片先信号也不变低,时针也没有信号输出。MOSI也没有波形。会是设置问题吗?
  1. void SPI_Init (void)
  2. {
  3.     /* Enable SSPI0 block */
  4.     LPC_SC->PCONP |= (1 << 21);
  5.    
  6. //     /* Set SSEL0 as GPIO, output high */
  7. //     LPC_PINCON->PINSEL1 &= ~(3 << 0);          /* Configure P0.16(SSEL) as GPIO */
  8. //     LPC_GPIO0->FIODIR |= (1 << 16);            /* set P0.16 as output */
  9. //     
  10. //     /* Configure other SSP pins: SCK, MISO, MOSI */
  11. //     LPC_PINCON->PINSEL0 &= ~(3UL << 30);
  12. //     LPC_PINCON->PINSEL0 |=  (2UL << 30);          /* P0.15: SCK0 */
  13. //     LPC_PINCON->PINSEL1 &= ~((3<<2) | (3<<4));
  14. //     LPC_PINCON->PINSEL1 |=  ((2<<2) | (2<<4));  /* P0.17: MISO0, P0.18: MOSI0 */
  15.        
  16.                   /* SSEL is GPIO, output set to high. */
  17.   LPC_GPIO1->FIODIR  |=  (1<<21);                 /* P1.21 is output */
  18.   LPC_GPIO1->FIOPIN  |=  (1<<21);                 /* set P1.21 high (SSEL inactiv) */
  19.   LPC_PINCON->PINSEL3 &= ~(3<<12);                 /* P1.21 SSEL (used as GPIO) */

  20.   /* SCK, MISO, MOSI are SSP pins. */
  21.   LPC_PINCON->PINSEL3 &= ~(3UL<<8);              /* P1.20 cleared */
  22.   LPC_PINCON->PINSEL3 |=  (3UL<<8);              /* P1.20 SCK0 */
  23.   LPC_PINCON->PINSEL3 &= ~((3<<14) | (3<<16));      /* P1.23, P1.24 cleared */
  24.   LPC_PINCON->PINSEL3 |=  ((3<<14) | (3<<16));      /* P1.23 MISO0, P1.24 MOSI0 */
  25.    
  26.     /* Configure SSP0_PCLK to CCLK(100MHz), default value is CCLK/4 */
  27.     LPC_SC->PCLKSEL1 &= ~(3 << 10);
  28.     LPC_SC->PCLKSEL1 |=  (1 << 10);  /* SSP0_PCLK=CCLK */
  29.    
  30.     /* 8bit, SPI frame format, CPOL=0, CPHA=0, SCR=0 */  
  31.     LPC_SSP0->CR0 = (0x07 << 0) |     /* data width: 8bit*/
  32.                     (0x00 << 4) |     /* frame format: SPI */
  33.                     (0x00 << 6) |     /* CPOL: low level */
  34.                     (0x00 << 7) |     /* CPHA: first edge */
  35.                     (0x00 << 8);      /* SCR = 0 */

  36.     /* Enable SSP0 as a master */
  37.     LPC_SSP0->CR1 = (0x00 << 0) |   /* Normal mode */
  38.                     (0x01 << 1) |   /* Enable SSP0 */
  39.                     (0x00 << 2) |   /* Master */
  40.                     (0x00 << 3);    /* slave output disabled */

  41.     /* Configure SSP0 clock rate to 400kHz (100MHz/250) */
  42.     SPI_ConfigClockRate (SPI_CLOCKRATE_LOW);

  43.     /* Set SSEL to high */
  44.     SPI_CS_High ();
 楼主| qchwu 发表于 2013-6-15 18:37 | 显示全部楼层
将FLASH擦除一下,然后DEBUG后,就正常了。原因未知。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

127

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部