我想請(qǐng)教一下。兩個(gè)藍(lán)牙(ch579)已經(jīng)連接成功了并且上電能發(fā)送并接收到一次數(shù)據(jù),現(xiàn)在我想通過按鍵觸發(fā)的方式實(shí)現(xiàn)發(fā)送數(shù)據(jù),請(qǐng)問一在central例程的哪里修改呢。
CH579主從連接后,主機(jī)會(huì)給從機(jī)發(fā)送一次0x55,從機(jī)會(huì)給主機(jī)發(fā)送0x88,需要進(jìn)行發(fā)送,只需要在按鍵按下的時(shí)候調(diào)用發(fā)送的函數(shù)就可以了。
需注意TMOS結(jié)合中斷可以通過置標(biāo)志查詢的方式處理。
您好我還想請(qǐng)教一下現(xiàn)在已經(jīng)可以實(shí)現(xiàn)用按鍵觸發(fā)發(fā)送數(shù)據(jù)了。但是主機(jī)發(fā)送的時(shí)候需要按兩次,從機(jī)才會(huì)接收到一次數(shù)據(jù)這是什么原因呢?? ?而且數(shù)據(jù)發(fā)送和接收的時(shí)候會(huì)有大概1s的延時(shí)需要怎么做才能降低延時(shí)呢?
按鍵兩次才發(fā)送,可以加點(diǎn)打印看看代碼運(yùn)行邏輯,
有一秒的延時(shí)是因?yàn)橹鳈C(jī)和從機(jī)發(fā)送數(shù)據(jù)調(diào)用的tmos任務(wù)是延時(shí)1s后觸發(fā)的:?tmos_start_task(centralTaskId, START_READ_OR_WRITE_EVT, DEFAULT_READ_OR_WRITE_DELAY);
tmos_start_task(Peripheral_TaskID, SBP_PERIODIC_EVT, SBP_PERIODIC_EVT_PERIOD);
修改第三個(gè)參數(shù),默認(rèn)例程設(shè)置為1600,單位0.625ms,1600*0.625=1000ms
又遇到問題了,調(diào)用的tmos任務(wù)的時(shí)間我已經(jīng)改了,但是接收時(shí)還是有很大的延時(shí)這是什么原因呢?
如果想要發(fā)送數(shù)組,或者同時(shí)發(fā)送兩個(gè)不同的數(shù)據(jù)需要需修改那里呢?
如果還有延時(shí),如主機(jī)接受notify有延時(shí),那么就是主機(jī)打開從機(jī)notify開關(guān)慢了,此參數(shù)DEFAULT_WRITE_CCCD_DELAY也需同步調(diào)小。
主機(jī)發(fā)送多個(gè)數(shù)據(jù)給從機(jī)需修改:
uint8_t CmdHead[8]={0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38};
根據(jù)需求賦值需發(fā)送的長(zhǎng)度req.len = 8;
tmos_memcpy(req.pValue, CmdHead, 8);
從機(jī)端也需修改:
#define SIMPLEPROFILE_CHAR1_LEN 8