工程師你好,我請教一下這個例程中我只看到定義、調(diào)用通知的函數(shù)如圖? 但通知這個功能是定時幾秒鐘一直發(fā)送的,這個是程序哪里觸發(fā)的呢,我現(xiàn)在想把通知這個功能修改為? CH579的串口收到數(shù)據(jù),然后再觸發(fā)通知功能,讓藍牙發(fā)出串口接收的數(shù)據(jù)。謝謝!望指點。
static void performPeriodicTask(void) {? ? ? ??
????????len = UART1_RecvString(RxBuff);
? ? ? ? if(len)
? ? ? ? {
? ? ? ? uint8_t notiData[SIMPLEPROFILE_CHAR4_LEN] = RxBuff;
? ? ? ? peripheralChar4Notify(notiData, SIMPLEPROFILE_CHAR4_LEN);
? ? ? ? }
}
您好,可以參考下此鏈接,介紹了藍牙主從收發(fā)函數(shù):
從機例程是通過周期任務(wù)發(fā)送noti信息的:
tmos_start_task(Peripheral_TaskID,?SBP_PERIODIC_EVT,?SBP_PERIODIC_EVT_PERIOD);
你好,我修改如下
static void performPeriodicTask( void )? ? //通知
{
uint16 len=0;
uint8 RxBuff[SIMPLEPROFILE_CHAR4_LEN];
len = UART1_RecvString(RxBuff);
? ?if(len)
? ? {
? ? ?peripheralChar4Notify(RxBuff, len);
? ? }
}
然后把SIMPLEPROFILE_CHAR4_LEN這個值設(shè)置為20,CH579串口接收數(shù)據(jù)后藍牙一次發(fā)出的數(shù)據(jù)上限是8字節(jié),這個值可以在哪里修改嗎,我想一次發(fā)20個字節(jié)左右。謝謝!
你好,我根據(jù)3樓的教程修改一包的最大數(shù)據(jù)量。但是通知還是一次只能接受8字節(jié),請問可能是哪里的問題呢?我的修改如下:
1.
#ifndef BLE_BUFF_MAX_LEN
#define BLE_BUFF_MAX_LEN251
........
2.
void Peripheral_Init( )
{
GATT_InitClient();
? Peripheral_TaskID = TMOS_ProcessEventRegister( Peripheral_ProcessEvent );
...........
3.
static void peripheralStateNotificationCB( gapRole_States_t newState, gapRoleEvent_t * pEvent )
{
........
? ? case GAPROLE_CONNECTED:
? ? ? if( pEvent->gap.opcode == GAP_LINK_ESTABLISHED_EVENT )
? ? ? {
? ? ? ? Peripheral_LinkEstablished( pEvent );
? ? ? }
? ? ? PRINT( "Connected..\n" );
????? attExchangeMTUReq_t req;? ?//修改一包字節(jié)數(shù)
? ? ? req.clientRxMTU = 247;
? ? ? GATT_ExchangeMTU(peripheralConnList.connHandle, &req, Peripheral_TaskID);??
? ? ? break;
..........
您好,可以參考下ch573的BLE? UART例程,串口的FIFO是8個字節(jié)。
好的,謝謝。
你好,請教一下這個通知的函數(shù)static void performPeriodicTask( void )? ? //通知? 調(diào)用的周期能不能設(shè)置短一點呢,我想讓他調(diào)用頻繁一些,多傳輸一些數(shù)據(jù)。
哦哦,我找到了? 在這里
// How often to perform periodic event
#define SBP_PERIODIC_EVT_PERIOD? ? ? ? ? ? ? ?1600
@小二哥??
貼出來CH579 Peripheral例程 通知功能的正確程序,學(xué)習(xí)一下