Dear All
在CC2640R2F的simple_peripheral的工程添加了SPI的驱动,代码如下,可以调用测量一直没波形,抓打印已经是有跑到SPI写数据的函数了
在SimplePeripheral_init里面已经加了void SPI_Init(void)
在SimplePeripheral_taskFxn的开头按如下添加
uint8_t temp[1] = {0xff};
SimplePeripheral_init();
SPI_ReadWriteData(temp, NULL, sizeof(uint8_t));
// Application main loop
下面是SPI的驱动代码,请帮忙看看哪里有问题,谢谢
/*********************************************************************
* INCLUDES
*/
//#include <string.h>
#include <ti/drivers/SPI.h>
#include <ti/drivers/spi/***.h>
#include <ti/drivers/PIN.h>
#include <ti/drivers/pin/PINCC26XX.h>
#include "board_spi.h"
#include "GUA_Uart.h"
/*********************************************************************
* LOCAL VARIABLES
*/
static SPI_Handle s_spiHandle;
static SPI_Params s_spiParams;
static SPI_Transaction s_spiTransaction;
static PIN_State s_spiCsnState;
static PIN_Handle s_spiCsnHandle;
static PIN_Config s_spiCsnPinsCfg[] =
{
BOARD_SPI0_CSN_IO | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MIN,
PIN_TERMINATE
};
void SPI_Init(void)
{
SPI_init();
SPI_Params_init(&s_spiParams);
s_spiParams.dataSize = 8;
s_spiCsnHandle = PIN_open(&s_spiCsnState, s_spiCsnPinsCfg);
s_spiHandle = SPI_open(Board_SPI0, &s_spiParams);
if(s_spiHandle == NULL)
{
while(1); // SPI_open() failed
}
}
void SPI_CsnSet(PIN_Id pinId, bool pinState)
{
if(pinState == BOARD_SPI_CS_OFF)
{
PIN_setOutputValue(s_spiCsnHandle, pinId, 1);
}
else if(pinState == BOARD_SPI_CS_ON)
{
PIN_setOutputValue(s_spiCsnHandle, pinId, 0);
}
}
void SPI_ReadWriteData(uint8_t *pWriteData, uint8_t *pReadData, uint8_t writeDataLen)
{
bool transferOk;
s_spiTransaction.count = writeDataLen; // 写入的数据长度
s_spiTransaction.arg = NULL;
s_spiTransaction.txBuf = pWriteData; // 发送缓冲区
s_spiTransaction.rxBuf = pReadData; // 接收缓冲区
transferOk = SPI_transfer(s_spiHandle, &s_spiTransaction); // 启动SPI传输
if(!transferOk)
{
// Error in SPI or transfer already in progress.
}
}
/*************************************END OF FILE*************************************/
Kevin Qiu1:
有用C:\ti\simplelink_cc2640r2_sdk_4_20_00_04\examples\rtos\CC2640R2_LAUNCHXL\drivers\spimaster这里的例程试过吗