各位大神:
我使用SimpleBLEPeripheral程序想要验证下蓝牙4.0 BLE协议栈中的串口(使用DMA)应用,做了个实验,但是有问题,怎么发数据也发不出来,下面是我的代码:
在SimpleBLEPeripheral.c中添加:
unsigned char uartbuf[152];
static void rxCB(uint8 port, uint8 event)
{
HalUARTRead(0, uartbuf,19);
HalUARTWrite(0, uartbuf,19);
osal_memset( uartbuf,0,19);
}
在SimpleBLEPeripheral_Init()函数中添加:
halUARTCfg_t uartConfig;
uartConfig.baudRate = HAL_UART_BR_115200;
uartConfig.configured = TRUE;
uartConfig.flowControl = FALSE;
uartConfig.callBackFunc = rxCB;
HalUARTOpen(0, &uartConfig);
并且 我在keyfob上自己飞了串口线(使用串口0)。
但是怎么调都调不出来,我要是在options中加上HAL_UART = TURE就会提示warnning,说什么重复定义了(hal_uart和hal_key重复定义,并且在这个时候调试按右键,也无法广播,dongle无法搜索到),我要是不加这个宏,就在HalDriverInit()中发现有下面一段
/* UART */
#if (defined HAL_UART) && (HAL_UART == TRUE)
HalUARTInit();
#endif
也就是说不加入宏haluart就没有被初始化,同样运行也无法收到信息。大家有什么看法和建议给提下下~~
