3786|8

15

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

TIM4为什么用SPI读取时,SCLK没有输出呢? [复制链接]

如题,为了和子机同步,M4应该主动输出时钟到子机吧。

最新回复

你看下SCLK管脚在其他地方调用了没有!  详情 回复 发表于 2014-7-11 09:31
 
点赞 关注

回复
举报

5310

帖子

453

TA的资源

五彩晶圆(高级)

沙发
 
那你先看看你程序
外设时钟,管脚功能,配置等等

 
 

回复

1

帖子

1

TA的资源

一粒金砂(初级)

板凳
 
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(中级)

4
 
蓝雨夜 发表于 2014-7-10 15:02
那你先看看你程序
外设时钟,管脚功能,配置等等
  1. void InitSPI(void)
  2. {
  3.                 SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI2);
  4.                 SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOH);
  5.                
  6.                 GPIOPinConfigure(GPIO_PH4_SSI2CLK);
  7.                 //GPIOPinConfigure(GPIO_PH5_SSI2FSS);
  8.                 GPIOPinConfigure(GPIO_PH6_SSI2RX);
  9.                 GPIOPinConfigure(GPIO_PH7_SSI2TX);
  10.        
  11.                 GPIOPinTypeSSI(GPIO_PORTH_BASE, GPIO_PIN_4|GPIO_PIN_6|GPIO_PIN_7);
  12.                
  13.                 SSIConfigSetExpClk(SSI2_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_0,SSI_MODE_MASTER,2000000,16);
  14.                
  15.                 SSIEnable(SSI2_BASE);
  16.        
  17.                 while(SSIDataGetNonBlocking(SSI2_BASE, &buffer1)){}
  18. }

  19. void SPIRead(void)
  20. {
  21.                 SSIDataGet(SSI2_BASE, &buffer1);
  22.                 buffer1 &= 0x3FFF;
  23.                 buffer2 = buffer1;
  24.                 UARTprintf("Read: %x", buffer2);
  25. }
  26. //-----------------------------------------------------------------------------
  27. // Ö÷oˉêy:Ïòw25x80D′êy¾Y£¬Ö®oó¶á3ö¡£
  28. //-----------------------------------------------------------------------------
  29. int main(void)
  30. {                    tContext sContext;
  31.     tRectangle sRect;
  32.            char cThisChar;
  33.                  char ulIdx;
  34.      SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_XTAL_16MHZ |
  35.                    SYSCTL_OSC_MAIN);
  36.     //
  37.     // 3õê¼»ˉ′®¿ú
  38.     //
  39.                 lcd_ili932x_init();                //3õê¼»ˉLCDÇy¶ˉ
  40.     GrContextInit(&sContext, &g_sLcdDisplay);//3õê¼»ˉí¼Dοa
  41.                 lcd_backlight_on();       
  42.            lcd_ili932x_flush(&sContext);
  43.     sRect.sXMin = 0;
  44.     sRect.sYMin = 0;
  45.     sRect.sXMax = GrContextDpyWidthGet(&sContext) - 1;
  46.     sRect.sYMax = 23;                                                                  
  47.     GrContextForegroundSet(&sContext, ClrDarkBlue);
  48.     GrRectFill(&sContext, &sRect);                                          //  ìî3äà¶é«·½¿é
  49.     GrContextForegroundSet(&sContext, ClrWhite);
  50.     GrRectDraw(&sContext, &sRect);                                          //  ¼ó°×é«¿ò¿ò
  51.     GrContextFontSet(&sContext, &g_sFontCm20);
  52.     GrStringDrawCentered(&sContext, "SPI Demo", -1,
  53.                        GrContextDpyWidthGet(&sContext) / 2, 10, 0);        // ÏÔê¾êμÑé±êÖ¾
  54.     InitConsole();//′®¿ú3õê¼»ˉ
  55.           InitSPI();
  56.                 InitGPIO();
  57.                 SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);                                               // ê1ÄüLEDËùÔú¶Ë¿úPH       
  58.     GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, GPIO_PIN_7); //ÅäÖÃPN.4ÎaledμÆêä3ö
  59.     GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_7,GPIO_PIN_7);
  60.                 SysCtlDelay((SysCtlClockGet()/1));                     // é趨ÿ′ÎÑóê±ê±¼ä£¬t=1 Ñóê±Îa1ms

  61.                 while(1){
  62.                         GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_7,0);
  63.                         UARTprintf("start  /n");
  64.                         //GrStringDraw(&sContext,"SPI is Reading...", -1, 30, 80, 1);        //′òó¡DÅÏ¢
  65.                         SPIRead();
  66.                         GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_7,GPIO_PIN_7);
  67.                         UARTprintf("  done /n");
  68.                         //GrContextFontSet(&sContext, &g_sFontCm20);//
  69.                         //sprintf(dis,"SPI Read: %x",buffer2);
  70.                         //GrStringDraw(&sContext,dis, -1, 30, 80, 1);        //′òó¡DÅÏ¢
  71.                 }
  72. }
复制代码


 
 
 

回复

50

帖子

0

TA的资源

一粒金砂(中级)

5
 
//GPIOPinConfigure(GPIO_PH5_SSI2FSS);片选端至少要有吧!SSIConfigSetExpClk(SSI2_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_0,SSI_MODE_MASTER,2000000,16);这个函数中的模式注意下,4个模式有区别的!!

点评

我只有一个AD,所以不用CS应该也没问题的吧极性和相位的选择我想不会影响到SCLK的输出吧  详情 回复 发表于 2014-7-10 17:58
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(中级)

6
 
ZhengLang 发表于 2014-7-10 15:28
//GPIOPinConfigure(GPIO_PH5_SSI2FSS);片选端至少要有吧!SSIConfigSetExpClk(SSI2_BASE, SysCtlClockGet( ...

我只有一个AD,所以不用CS应该也没问题的吧极性和相位的选择我想不会影响到SCLK的输出吧

点评

我在用硬件SPI刷彩屏。CS必须接入,不能直接接在GND上。你注意下,还有模式不同,可能会影响是下降沿还是上升沿数据写入外部器件中的移位寄存器!  详情 回复 发表于 2014-7-10 19:42
 
 
 

回复

50

帖子

0

TA的资源

一粒金砂(中级)

7
 
oursunny 发表于 2014-7-10 17:58
我只有一个AD,所以不用CS应该也没问题的吧极性和相位的选择我想不会影响到SCLK的输出吧

我在用硬件SPI刷彩屏。CS必须接入,不能直接接在GND上。你注意下,还有模式不同,可能会影响是下降沿还是上升沿数据写入外部器件中的移位寄存器!

点评

谢谢您的提醒!CS是应该要接入的。 但是SCLK为啥都不输出呢?  详情 回复 发表于 2014-7-10 19:46
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(中级)

8
 
ZhengLang 发表于 2014-7-10 19:42
我在用硬件SPI刷彩屏。CS必须接入,不能直接接在GND上。你注意下,还有模式不同,可能会影响是下降沿还是 ...

谢谢您的提醒!CS是应该要接入的。
但是SCLK为啥都不输出呢?

点评

你看下SCLK管脚在其他地方调用了没有!  详情 回复 发表于 2014-7-11 09:31
 
 
 

回复

50

帖子

0

TA的资源

一粒金砂(中级)

9
 
oursunny 发表于 2014-7-10 19:46
谢谢您的提醒!CS是应该要接入的。
但是SCLK为啥都不输出呢?

你看下SCLK管脚在其他地方调用了没有!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表