请问CC2541使用蓝牙和串口进行透传时,如何才能发送HEX码,而不是字符串格式。同时读取的数据也以HEX码的格式读取,而不是字符串格式。谢谢
Alvin Chen:
你发送的都是hex格式,只不过你buf里面装的刚好是对应的字符的ascii码而已,
举个例子:noti.handle =simpleProfileAttrTbl[11].handle;noti.len = slen;memcpy(noti.pValue, nvalue, slen);
status = GATT_Notification( pItem->connHandle, ¬i, FALSE );
随便装你的buf, 你要装的是0x31你显示的是1,但是你要在你接收端设置hex显示就是0x31。
仅此而已。
Viki Shi:
这个需要你自己写代码去处理,思路参考下右边文档:blog.csdn.net/…/51683627
yang wang9:
回复 Alvin Chen:
所以问题是,我该如何写入HEX码并且发送。我的意思是,我写入的就是我想发送的
yang wang9:
回复 Alvin Chen:
所以问题是,我该如何写入HEX码并且发送。我的意思是,我写入的就是我想发送的
yang wang9:
回复 Viki Shi:
所以我该如何写入HEX码?就是说我写入的既是我想发送的,谢谢
Alvin Chen:
回复 yang wang9:
对的,你显示是字符串是因为他刚好是字符串,你可以在buf填一下0x01之类的,你不开的hex显示就是乱码
yang wang9:
回复 Alvin Chen:
请问能否具体一点,比如使用哪个函数我可以直接写入我需要的HEX码,然后我通过串口来发送
Alvin Chen:
回复 yang wang9:
这取决于你的自己的程序,有notify和indicate 。
你自己去用C:\Texas Instruments\BLE-CC254x-1.4.2.2\Projects\ble\SimpleBLEPeripheralstatic void performPeriodicTask( void )
{uint8 valueToCopy;uint8 stat;
// Call to retrieve the value of the third characteristic in the profilestat = SimpleProfile_GetParameter( SIMPLEPROFILE_CHAR3, &valueToCopy);
if( stat == SUCCESS ){/** Call to set that value of the fourth characteristic in the profile. Note* that if notifications of the fourth characteristic have been enabled by* a GATT client device, then a notification will be sent every time this* function is called.*/SimpleProfile_SetParameter( SIMPLEPROFILE_CHAR4, sizeof(uint8), &valueToCopy);}
}
这就是一个发送一个uint8的字符的。
yang wang9:
回复 Alvin Chen:
好的,我自己尝试一下。由衷感谢
da qin zheng sheng:
蓝牙和串口都可以发送hex,每个字节从0x00到0xff