完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
void InitSPI(void)[ SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI2); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOH); GPIOPinConfigure(GPIO_PH4_SSI2CLK); //GPIOPinConfigure(GPIO_PH5_SSI2FSS); GPIOPinConfigure(GPIO_PH6_SSI2RX); GPIOPinConfigure(GPIO_PH7_SSI2TX); GPIOPinTypeSSI(GPIO_PORTH_BASE, GPIO_PIN_4|GPIO_PIN_6|GPIO_PIN_7); SSIConfigSetExpClk(SSI2_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_0,SSI_MODE_MASTER,2000000,16); SSIEnable(SSI2_BASE); while(SSIDataGetNonBlocking(SSI2_BASE, &buffer1))[]]void SPIRead(void)[ SSIDataGet(SSI2_BASE, &buffer1); buffer1 &= 0x3FFF; buffer2 = buffer1; UARTprintf("Read: %x", buffer2);]//-----------------------------------------------------------------------------// Ö÷oˉêy:Ïòw25x80D′êy¾Y£¬Ö®oó¶á3ö¡£//-----------------------------------------------------------------------------int main(void)[ tContext sContext; tRectangle sRect; char cThisChar; char ulIdx; SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_XTAL_16MHZ | SYSCTL_OSC_MAIN); // // 3õê¼»ˉ′®¿ú // lcd_ili932x_init(); //3õê¼»ˉLCDÇy¶ˉ GrContextInit(&sContext, &g_sLcdDisplay);//3õê¼»ˉí¼Dοa lcd_backlight_on(); lcd_ili932x_flush(&sContext); sRect.sXMin = 0; sRect.sYMin = 0; sRect.sXMax = GrContextDpyWidthGet(&sContext) - 1; sRect.sYMax = 23; GrContextForegroundSet(&sContext, ClrDarkBlue); GrRectFill(&sContext, &sRect); // ìî3äà¶é«·½¿é GrContextForegroundSet(&sContext, ClrWhite); GrRectDraw(&sContext, &sRect); // ¼ó°×é«¿ò¿ò GrContextFontSet(&sContext, &g_sFontCm20); GrStringDrawCentered(&sContext, "SPI Demo", -1, GrContextDpyWidthGet(&sContext) / 2, 10, 0); // ÏÔê¾êμÑé±êÖ¾ InitConsole();//′®¿ú3õê¼»ˉ InitSPI(); InitGPIO(); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); // ê1ÄüLEDËùÔú¶Ë¿úPH GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, GPIO_PIN_7); //ÅäÖÃPN.4ÎaledμÆêä3ö GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_7,GPIO_PIN_7); SysCtlDelay((SysCtlClockGet()/1)); // é趨ÿ′ÎÑóê±ê±¼ä£¬t=1 Ñóê±Îa1ms while(1)[ GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_7,0); UARTprintf("start /n"); //GrStringDraw(&sContext,"SPI is Reading...", -1, 30, 80, 1); //′òó¡DÅÏ¢ SPIRead(); GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_7,GPIO_PIN_7); UARTprintf(" done /n"); //GrContextFontSet(&sContext, &g_sFontCm20);// //sprintf(dis,"SPI Read: %x",buffer2); //GrStringDraw(&sContext,dis, -1, 30, 80, 1); //′òó¡DÅÏ¢ ]] |
|
|
|
|
|
|
|
梦中的花不凋零 发表于 2018-8-14 07:45 没太看明白SSI读取函数里面的数据处理是啥意思, 不过对于SSI来说,需要读取数据时要先发送数据,这样SSI主设备才会产生时钟,发送数据的同时,接收到的数据也会存入buffer,再调用 SSIDataGet就可以把数据读出来。 |
|
|
|
|
|
|
|
梦中的花不凋零 发表于 2018-8-14 08:26 对于SPI的时序来说,主要的配置就在是时钟频率、字长、时钟的极性和采样的边沿。这个在SPI设备(ADS8371)中会有明确的描述。M4的SPI按照这个去配置就好。 例如, SSIConfigSetExpClk(SSI1_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_0, SSI_MODE_MASTER, 2000000, 16); SSI_FRF_MOTO_MODE_0是时钟极性和采样边沿,2000000是频率,16是字长。 接下来就是ADS8371的内部寄存器和配置了,这个按照它的Datasheet去做就行了。 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
598 浏览 0 评论
1651 浏览 0 评论
2090 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1541 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1383 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1793浏览 29评论
2820浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1748浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1666浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1680浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-13 21:10 , Processed in 1.515808 second(s), Total 66, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2973