协议栈版本是CC254x-1.3.2
TI把串口线管的东西封装在协议栈的一个NPI的文件夹中npi.c
下面是npi.c中的初始化函数
void NPI_InitTransport( npiCBack_t npiCBack )//初始化串口通讯
{
halUARTCfg_t uartConfig
// configure UART
uartConfig.configured = TRUE
uartConfig.baudRate = NPI_UART_BR
uartConfig.flowControl = NPI_UART_FC
uartConfig.flowControlThreshold = NPI_UART_FC_THRESHOLD
uartConfig.rx.maxBufSize = NPI_UART_RX_BUF_SIZE
uartConfig.tx.maxBufSize = NPI_UART_TX_BUF_SIZE
uartConfig.idleTimeout = NPI_UART_IDLE_TIMEOUT
uartConfig.intEnable = NPI_UART_INT_ENABLE
uartConfig.callBackFunc = (halUARTCBack_t)npiCBack
// start UART
// Note: Assumes no issue opening UART port.
(void)HalUARTOpen( NPI_UART_PORT, &uartConfig )
return
}
然后再 simpleBLEPeripheral.c文件中包含“npi.h”文件
在SimpleBLEPeripheral_Init函数中初始化串口通讯,
即调用NPI_InitTransport( NpiSerialCallback);
这里回调了一个函数NpiSerialCallback,这个函数要在 simpleBLEPeripheral.c文件中声明并实现。
如下:
static void NpiSerialCallback( uint8 port, uint8 events );
static void NpiSerialCallback( uint8 port, uint8 events )
{
(void)port;
uint8 numBytes = 0;
uint8 buf[128];
if (events & HAL_UART_RX_TIMEOUT)
{
numBytes = NPI_RxBufLen();
if(numBytes)
{
NPI_ReadTransport(buf,numBytes);
NPI_WriteTransport(buf,numBytes);
}
}
}
最后设置预处理程序,
三步就可以实现串口通讯了
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)