完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
测试程序中是16位的,也就是说
SPI_setCharLength(mySpi, SPI_CharLength_16_Bits); 我把他改成8位, SPI_setCharLength(mySpi, SPI_CharLength_8_Bits); 然后数据发送 SPI_write(mySpi, 0xAA); 结果什么都没有发送,为什么呢. 完整代码. #include "DSP28x_Project.h" #include "f2802x_common/include/adc.h" #include "f2802x_common/include/clk.h" #include "f2802x_common/include/flash.h" #include "f2802x_common/include/gpio.h" #include "f2802x_common/include/pie.h" #include "f2802x_common/include/pll.h" #include "f2802x_common/include/spi.h" #include "f2802x_common/include/wdog.h" void delay_loop(void); void spi_xmit(uint16_t a); void spi_fifo_init(void); void spi_init(void); void error(void); ADC_Handle myAdc; CLK_Handle myClk; FLASH_Handle myFlash; GPIO_Handle myGpio; PIE_Handle myPie; SPI_Handle mySpi; void main(void) [ CPU_Handle myCpu; PLL_Handle myPll; WDOG_Handle myWDog; // Initialize all the handles needed for this application myAdc = ADC_init((void *)ADC_BASE_ADDR, sizeof(ADC_Obj)); myClk = CLK_init((void *)CLK_BASE_ADDR, sizeof(CLK_Obj)); myCpu = CPU_init((void *)NULL, sizeof(CPU_Obj)); myFlash = FLASH_init((void *)FLASH_BASE_ADDR, sizeof(FLASH_Obj)); myGpio = GPIO_init((void *)GPIO_BASE_ADDR, sizeof(GPIO_Obj)); myPie = PIE_init((void *)PIE_BASE_ADDR, sizeof(PIE_Obj)); myPll = PLL_init((void *)PLL_BASE_ADDR, sizeof(PLL_Obj)); mySpi = SPI_init((void *)SPIA_BASE_ADDR, sizeof(SPI_Obj)); myWDog = WDOG_init((void *)WDOG_BASE_ADDR, sizeof(WDOG_Obj)); // 初始化 WDOG_disable(myWDog); CLK_enableAdcClock(myClk); (*Device_cal)(); CLK_setOscSrc(myClk, CLK_OscSrc_Internal); PLL_setup(myPll, PLL_Multiplier_10, PLL_DivideSelect_ClkIn_by_2); PIE_disable(myPie); PIE_disableAllInts(myPie); CPU_disableGlobalInts(myCpu); CPU_clearIntFlags(myCpu); #ifdef _FLASH memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize); #endif // Initalize GPIO GPIO_setPullUp(myGpio, GPIO_Number_16, GPIO_PullUp_Enable); GPIO_setPullUp(myGpio, GPIO_Number_17, GPIO_PullUp_Enable); GPIO_setPullUp(myGpio, GPIO_Number_18, GPIO_PullUp_Enable); GPIO_setPullUp(myGpio, GPIO_Number_19, GPIO_PullUp_Enable); GPIO_setQualification(myGpio, GPIO_Number_16, GPIO_Qual_ASync); GPIO_setQualification(myGpio, GPIO_Number_17, GPIO_Qual_ASync); GPIO_setQualification(myGpio, GPIO_Number_18, GPIO_Qual_ASync); GPIO_setQualification(myGpio, GPIO_Number_19, GPIO_Qual_ASync); GPIO_setMode(myGpio, GPIO_Number_16, GPIO_16_Mode_SPISIMOA); GPIO_setMode(myGpio, GPIO_Number_17, GPIO_17_Mode_SPISOMIA); GPIO_setMode(myGpio, GPIO_Number_18, GPIO_18_Mode_SPICLKA); GPIO_setMode(myGpio, GPIO_Number_19, GPIO_19_Mode_SPISTEA_NOT); PIE_setDebugIntVectorTable(myPie); PIE_enable(myPie); spi_init(); spi_fifo_init(); for(;;) [ SPI_write(mySpi, 0xAA); while(SPI_getRxFifoStatus(mySpi) == SPI_FifoStatus_Empty) [ ] SPI_read(mySpi); ] ] void delay_loop() [ long i; for (i = 0; i < 1000000; i++) [ ] return; ] void error(void) [ asm(" ESTOP0"); // Test failed!! Stop! for (;;) [ ] ] void spi_init() [ CLK_enableSpiaClock(myClk); // Reset on, rising edge, 16-bit char bits SPI_setCharLength(mySpi, SPI_CharLength_8_Bits); // Enable master mode, normal phase, // enable talk, and SPI int disabled. SPI_setMode(mySpi, SPI_Mode_Master); SPI_enableTx(mySpi); SPI_setBaudRate(mySpi, SPI_BaudRate_500_KBaud); // Relinquish SPI from Reset //SPI_enableLoopBack(mySpi); //测试时候有用,环回测试. SPI_enable(mySpi); // Set so breakpoints don't disturb xmission //优先级控制 /* * 模式2:FreeRun:忽略中断 * 模式1:AfterRxRxSeq: * 模式0:Immediate: */ SPI_setPriority(mySpi, SPI_Priority_FreeRun); return; ] void spi_fifo_init() [ // Initialize SPI FIFO registers SPI_enableChannels(mySpi); SPI_enableFifoEnh(mySpi); SPI_resetTxFifo(mySpi); SPI_clearTxFifoInt(mySpi); SPI_resetRxFifo(mySpi); SPI_clearRxFifoInt(mySpi); SPI_setRxFifoIntLevel(mySpi, SPI_FifoLevel_4_Words); return; ] |
|
相关推荐
4 个讨论
|
|
只有小组成员才能发言,加入小组>>
554 浏览 0 评论
1617 浏览 0 评论
2049 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1516 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1343 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1760浏览 29评论
2787浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1726浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1637浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1648浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 13:17 , Processed in 0.792537 second(s), Total 61, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
5322