一、目的
在 OSAL操作系统-实验31 从机广播功率修改-(20141029更新).zip 基础上进行修改,该工程是通过5向按键的上下按键来控制广播功率的加减,总共有4个档位。我们的目的是直接用最高功率进行广播。
二、涉及文件
下面几个文件是每个CC2541工程的主要文件(基本的修改都会在此):
其中:
- xxx_Main.c只有main函数,
- OSAL_SimpleBLEPeripheral.c中只有任务初始化函数,
- simpleBLEPeripheral.c才是重点
三、如何修改
整个工程是采用默认发射功率,然后通过有向按键控制gTxPower大小并通过HCI_EXT_SetTxPowerCmd(gTxPower);重新设置发射功率大小:
1 if ( keys & HAL_KEY_UP ) 2 { 3 HalLcdWriteString( "HAL_KEY_UP", HAL_LCD_LINE_5 ); 4 5 /* 6 #define LL_EXT_TX_POWER_MINUS_23_DBM 0 // -23dbm 功率 最小 7 #define LL_EXT_TX_POWER_MINUS_6_DBM 1 // -6dbm 8 #define LL_EXT_TX_POWER_0_DBM 2 // 0dbm 9 #define LL_EXT_TX_POWER_4_DBM 3 // +dbm 功率 最大 10 */ 11 if(gTxPower < LL_EXT_TX_POWER_4_DBM) 12 { 13 gTxPower++; //功率提高一档 14 HCI_EXT_SetTxPowerCmd(gTxPower); 15 16 HalLcdWriteStringValue( "TxPower: ", gTxPower, 10, HAL_LCD_LINE_7 ); 17 } 18 }
因此,我们只要在GAPROLE_ADVERTISING事件下调用HCI_EXT_SetTxPowerCmd(gTxPower);将默认广播发送功率设置为4db即可(同时也要设置默认广播发送功率为4db:uint8 gTxPower = LL_EXT_TX_POWER_4_DBM;)!
1 case GAPROLE_CONNECTED: 2 { 3 #if (defined HAL_LCD) && (HAL_LCD == TRUE) 4 HalLcdWriteString( "Connected", HAL_LCD_LINE_3 ); 5 HCI_EXT_SetTxPowerCmd(gTxPower); 6 #endif // (defined HAL_LCD) && (HAL_LCD == TRUE) 7 } 8 break;
修改后simpleBLEPeripheral.c为:
>>更好的方式应该是寻找默认广播发送功率的原始设置方式
相关链接:
2、利用蓝牙定位及姿态识别实现一个智能篮球场套件(二)——CC2540/CC2541基于广播的RSSI获得
1、利用蓝牙定位及姿态识别实现一个智能篮球场套件(一)——用重写CC2541透传模块做成智能手环
5、CC2541芯片中级教程-OSAL操作系统(PWM+看门狗)
4、CC2541芯片中级教程-OSAL操作系统(简单AT指令实现+IIC软件和硬件实现驱动MPU6050)
3、CC2541芯片中级教程-OSAL操作系统(ADC光敏电阻和修改串口波特率)
2、CC2541芯片中级教程-OSAL操作系统(进一步了解-OLED && 普通按键和5方向按键-中断!!!)这个系统驱动层和应用层不一样~
1、CC2541蓝牙4.0芯片中级教程——基于OSAL操作系统的运行流程了解+定时器和串口例程了解
本文转自beautifulzzzz博客园博客,原文链接:http://www.cnblogs.com/zjutlitao/p/6661908.html,如需转载请自行联系原作者