最近接了个项目,是要开发个蓝牙透传功能。所以我就捡起了几年没弄的板子。
重新搭建环境,以前玩的时候还是ble-stack-1.4.2,现在已经出了1.5.1,据说这个版本的协议栈已经支持蓝牙5.0了,不知道真假,还没有测试。
安装了IAR 10.20.1 for 8051,安装好协议栈1.5.1,打开simpleBLEPeripheral
步骤,工程选cc2541,然后option里面宏定义关闭power_saving,打开hal_led,
打开hal_uart
在simpleBLEPeripheral.c里面,添加npi.h
在SimpleBLEPeripheral_Init里面添加如下:
NPI_InitTransport(NpiSerialCallback);
NPI_WriteTransport("hello BEN PAO!\r\n",16);
文件末尾添加
static void NpiSerialCallback(uint8 port,uint8 events)
{
(void)port;
if(events & (HAL_UART_RX_TIMEOUT | HAL_UART_RX_FULL))
{
uint8 numBytes=0;
numBytes=NPI_RxBufLen();
if(numBytes == 0)
{
return;
}
else
{
uint8 *buffer=osal_mem_alloc(numBytes);
if(buffer)
{
NPI_ReadTransport(buffer,numBytes);
NPI_WriteTransport(buffer,numBytes);
osal_mem_free(buffer);
}
}
}
}
simpleProfileChangeCB函数,是特征值改变后的回调函数
我自己测试手机发送特征值数据,这里判断到了点灯和发串口信息,成功。
澹版槑:
鏈枃閲囩敤
BY-NC-SA
鍗忚杩涜鎺堟潈锛屽鏃犳敞鏄庡潎涓哄師鍒涳紝杞浇璇锋敞鏄庤浆鑷?
走着的小站
鏈枃鍦板潃: cc2541开发过程210502
鏈枃鍦板潃: cc2541开发过程210502