请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:SW-EK-TM4C129EXL 工具/软件:TI-RTOS
我需要通过 SPI 协议每0.5ms 发送一次数据。 我已在状态上配置了0.5毫秒的计时器、并添加了用于通过 SPI 发送数据的代码、在配置的计时器的 ISR 中、它仍然不起作用。 这是代码
/* XDCtools 头文件*/
#include
#include
#include
/* BIOS 头文件*/
#include
#include
/* TI-RTOS 头文件*/
#include
#include
#include
#include
#include
/*板头文件*/
#include "Board.h"
#include "driverlib/gpio.h"
#include
#include
#include
#include
#include
#include
#include "driverlib/timer.h"
#include
UChar array[8]={0xFF、0xFF、0xFF、0xFF、0xFF、0xFF、0xFF、0xFF、0xFF};
UChar receiveBuffer[8];
UChar transmitBuffer[8];
void spiDataSend ()
{
int l;
对于(l = 0;l < 8;l++)
{
transmitBuffer[l]=数组[l];
}
int i;
SPI_Handle SPI;
SPI_Params spiParams;
SPI_Params_init (&spiParams);
spiParams.dataSize = 8;// dataSize 的范围可以是4到8位*/
spiParams.transferMode = SPI_MODE_BLOCKING;
spiParams.mode = SPI_MASTER;
spiParams.transferCallbackFxn =空;
SPI = SPI_OPEN (Board_SPI0、&spiParams);
if (SPI == NULL){
/*打开 SPI 时出错*/
}
SPI_Transaction spiTransaction;
bool transferOK;
spiTransaction.count = 8;
spiTransaction.txBuf = transmitBuffer;
receivTransaction.rxBuf = spieBuffer;
transferOK = SPI_transfer (SPI、&spiTransaction);
if (transferOK){
/* SPI 传输或传输中出现错误*/
System_printf ("SPI 传输成功\n");
system_flush();
}
System_printf ("transmitBuffer is :\n");
system_flush();
对于(I = 0;I < 8;I++)
{
System_printf ("%x "、transmitBuffer[i]);
}
System_printf ("\n");
system_flush();
SPI_CLOSE (SPI);
}
void hw_init()
{
Board_initGeneral();
Board_initGPIO();
Board_initSPI ();
}
/*
==== main ====
*/
int main (void)
{
hw_init();
/*启动 BIOS */
BIOS_start();
返回(0);
}