主题中讨论的其他器件:CC2650、 ADS1292
工具/软件:TI-RTOS
具有 DMA 控制的 cc2650 SPI0 mater 和 SPI1主器件、当我使用 SPI0与 STM32通信时、我发现两个 SPI 缺少一些消息、我希望发送20字节数据、但我发现 SPI SCLK 输出小于
20 * 8 CLKS、什么问题? 当我屏蔽其中的一个,另一个正常!但当它们一起工作,错误!帮助!附件是我的代码!
//来自 yam_application.c static void StmComM_taskFxn (UArg a0、UArg A1) { //SPI 相关变量 SPI_Handle handle; SPI_Params params; SPI_Transaction; uint8_t Butxf[DS_central_LEN];//传输缓冲区 uint8_t Buf[0xFF];rxmembuket_eBuf] ;0xmembuket_eBuf (0xFF]、0xmembr>)、0xtxbuff_set sizeof (rxBuf)); //Init STM 通信任务 StmComM_init(); //初始化 SPI 并指定非默认参数 SPI_PARAMS_INIT (params); params.bitrate = 80000; params.frameFormat = SPI_POL1_PHA1; params.mode = SPI_MASTER; 针对 STM32响应、/SPI 传输超时为5ms。 //params.transferTimeout = 10 *(1000/Clock_tickPeriod); params.transferMode = SPI_MODE_BLOCKING; //配置事务 transaction.count = sizeof (txBuf); transaction.txBuf = txBuf; transaction.rxBuf = rxBuf; //打开 SPI 并执行到第一个从器件的传输 句柄= SPI_OPEN (CC2650_LAUNCHXL_SPI0、¶ms); //SPI_transfer (handle、&transaction); for (;;){ ProcessStmCommQueryEvt(); ProcessStmCommMsg (句柄、事务); Task_sleep (10 *(1000/Clock_tickPeriod)); //SPI_transfer (handle、&transaction); } }
//从 yam_application.c 静态 void EmbgTask_taskFxn (UArg0、UArg1){SPI_Handle handle;SPI_Params params;SPI_Transaction transaction;uint8_t sizeBuf[20];//传输缓冲区 uint8_t rxBuf[mem20];//接收缓冲区集(0xtxFF)、0xtxef (set); sizeof (rxBuf));//初始化 SPI 并指定非默认参数 SPI_Params_init (¶ms);params.bitrate = 1000000;params.frameFormat = SPI_POL1_PHA1;params.mode = SPI_master;params.transferMode = SPI_MODE_BLOCKING; //配置事务处理。count = sizeof (txBuf);transaction.txBuf = txBuf;transaction.rxBuf = rxBuf;//打开 SPI 并启动第一个传输句柄= SPI_open (CC2650_LAUNCHXL_SPI1、¶ms);//SPI_transfer (handle、transaction);// while (transaction)(perk_handle);/1000 (pertask_handle);//任务(perk1);//任务(pertick1)