關(guān)于CH583M 藍(lán)牙串口(BLE_UART)例程相關(guān)問(wèn)題

1、關(guān)于tmos_start_task的延遲時(shí)間

image.png

2、這段條件代碼的具體內(nèi)容?

image.png


3、藍(lán)牙發(fā)送數(shù)據(jù)到串口3的相關(guān)數(shù)據(jù)處理代碼在這實(shí)現(xiàn)嗎?

image.png

4、串口3發(fā)送到藍(lán)牙的數(shù)據(jù) 的相關(guān)數(shù)據(jù)處理代碼在這實(shí)現(xiàn)嗎?

image.png


5、關(guān)于tmos_start_task(Peripheral_TaskID, UART_TO_BLE_SEND_EVT, 2)函數(shù)

image.png

填寫時(shí)間不要超過(guò)23.5小時(shí)即可,藍(lán)牙的最大值喚醒時(shí)間。

將串口發(fā)送過(guò)來(lái)的數(shù)據(jù),存放到緩存,然后將緩存的數(shù)據(jù)再通過(guò)藍(lán)牙noti發(fā)送給主機(jī)。

是在這個(gè)回調(diào)函數(shù)處理接收數(shù)據(jù)并保存到buf里面。

串口的數(shù)據(jù)先經(jīng)過(guò)環(huán)形緩沖區(qū)再發(fā)送給主機(jī)。

一個(gè)id對(duì)應(yīng)16個(gè)任務(wù),可以自行添加。tmos講解:

WCH TMOS用法詳解 - debugdabiaoge - 博客園 (cnblogs.com)


串口3中的數(shù)據(jù)先保存在緩存中,然后藍(lán)牙noti從緩存中讀取數(shù)據(jù)直到FIFO Buffer中讀取完,然后就不經(jīng)過(guò)緩存了,直接讀???那要怎么在串口3通過(guò)藍(lán)牙noti發(fā)送數(shù)據(jù)之前修改串口3中的數(shù)據(jù)?(通過(guò)哪個(gè)函數(shù))

然后藍(lán)牙noti發(fā)送的數(shù)據(jù)是修改后的數(shù)據(jù)?


串口發(fā)送數(shù)據(jù)的時(shí)候,經(jīng)過(guò)中斷,將R8_UART3_RBR寄存器的數(shù)據(jù)讀取到app_uart_rx_fifo,然后將app_uart_rx_fifo數(shù)據(jù)傳給to_test_buffer再通過(guò)noti發(fā)送出去。

數(shù)據(jù)收發(fā)的時(shí)候一定會(huì)經(jīng)過(guò)環(huán)形緩沖區(qū)。

串口3的數(shù)據(jù)已經(jīng)收發(fā)完成是無(wú)法修改的,但是通過(guò)noti的數(shù)據(jù)可以不從緩沖區(qū)獲取,自行寫一個(gè)自定義的數(shù)組傳遞數(shù)據(jù)。

image.png


image.png

這個(gè)函數(shù)中沒(méi)有定義如何發(fā)送noti數(shù)據(jù)的?

所以要先修改to_test_buffer中的值,才能達(dá)到自定義數(shù)據(jù)發(fā)送的目的?


image.png

在my_buffer_read (仿寫app_drv_fifo_read())中將to_test_buffer的值拷貝到my_arr_buffer就再通過(guò)ble_uart_notify發(fā)送就可以了嗎?


可以跑一下例程BLE_UART,然后在數(shù)據(jù)收發(fā)的時(shí)候?qū)⑸厦嫣岬降膸讉€(gè)緩存均打印出來(lái)看看里面的值。

發(fā)送noti 是調(diào)用ble_uart_notify,因?yàn)楹瘮?shù)已經(jīng)給你封裝好了,直接調(diào)用就行。



image.png

這四個(gè)函數(shù)分別有什么作用呢?


那我可以直接再調(diào)用這些函數(shù)把 FIFO中的數(shù)據(jù)寫入我自定義的數(shù)組中(my_arr_buffer)然后再調(diào)用ble_uart_notify把自定義數(shù)組中的數(shù)據(jù)發(fā)出去?


舉例:app_drv_fifo_write,比較明顯可以看出來(lái)將傳參的data數(shù)據(jù)賦值給fifo,也就是數(shù)據(jù)存放到某個(gè)緩存中。

image.png

可以存放到自己的數(shù)組中,可以調(diào)用noti發(fā)送自己的數(shù)組數(shù)據(jù)。


image.png

直接用這個(gè)read也可以吧 read到我的數(shù)組中 同時(shí),也把fifo出棧清除了


您好,請(qǐng)問(wèn)BLE_UART串口透?jìng)鞯淖畲笏俣饶苓_(dá)到多少?我需要約24KB/S的傳輸速率。由于CH58x沒(méi)有UART DMA,我看BLE_UART中的做法是在串口接收中斷設(shè)置flag,并在主循環(huán)中將接收f(shuō)ifo中的數(shù)據(jù)取出,這樣在數(shù)據(jù)速率較高時(shí)可能會(huì)丟包,可否通過(guò)硬件流控解決?


24KB/S的速度可能會(huì)出現(xiàn)丟包,建議串口硬件做流控,并且出現(xiàn)丟包后進(jìn)行重傳。

目前測(cè)速可以將MTU配置為最大244,串口波特率提高。


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频