引用: 合肥冉坤 发表于 2020-8-28 13:06
有关发射功率 可以尝试调用如下函数
int BTPSAPI VS_Set_Max_Output_Power(unsigned int BluetoothStackID, Byte_t MaxPower)
多谢,加入了VS_Set_Max_Output_Power函数,发现编译错误。问题出在如下语句上:
/* Assign the Power Vector into the command. */
if((Index == 0) && (FormatIndex == 0))
ASSIGN_HOST_BYTE_TO_LITTLE_ENDIAN_UNALIGNED_BYTE(&CommandBuffer[2 + FormatIndex], (Byte_t)(MaxPower * 2));
else
ASSIGN_HOST_BYTE_TO_LITTLE_ENDIAN_UNALIGNED_BYTE(&CommandBuffer[2 + FormatIndex], (Byte_t)(PowerVector * 2));
查看ASSIGN_HOST_BYTE_TO_LITTLE_ENDIAN_UNALIGNED_BYTE的定义为:
#define ASSIGN_HOST_BYTE_TO_LITTLE_ENDIAN_UNALIGNED_BYTE(_x, _y)
[
((Byte_t *)(_x))[0] = ((Byte_t)(_y));
]
问题就在这里,将上述宏定义改为:
#define ASSIGN_HOST_BYTE_TO_LITTLE_ENDIAN_UNALIGNED_BYTE(_x, _y)
do [
((Byte_t *)(_x))[0] = ((Byte_t)(_y));
] while (0)
编译通过。
引用: 合肥冉坤 发表于 2020-8-28 13:06
有关发射功率 可以尝试调用如下函数
int BTPSAPI VS_Set_Max_Output_Power(unsigned int BluetoothStackID, Byte_t MaxPower)
多谢,加入了VS_Set_Max_Output_Power函数,发现编译错误。问题出在如下语句上:
/* Assign the Power Vector into the command. */
if((Index == 0) && (FormatIndex == 0))
ASSIGN_HOST_BYTE_TO_LITTLE_ENDIAN_UNALIGNED_BYTE(&CommandBuffer[2 + FormatIndex], (Byte_t)(MaxPower * 2));
else
ASSIGN_HOST_BYTE_TO_LITTLE_ENDIAN_UNALIGNED_BYTE(&CommandBuffer[2 + FormatIndex], (Byte_t)(PowerVector * 2));
查看ASSIGN_HOST_BYTE_TO_LITTLE_ENDIAN_UNALIGNED_BYTE的定义为:
#define ASSIGN_HOST_BYTE_TO_LITTLE_ENDIAN_UNALIGNED_BYTE(_x, _y)
[
((Byte_t *)(_x))[0] = ((Byte_t)(_y));
]
问题就在这里,将上述宏定义改为:
#define ASSIGN_HOST_BYTE_TO_LITTLE_ENDIAN_UNALIGNED_BYTE(_x, _y)
do [
((Byte_t *)(_x))[0] = ((Byte_t)(_y));
] while (0)
编译通过。
举报