CC2540藍牙發送
請問如果完全不使用CC2540的硬體和軟體模組,當成單純的單晶片,自己來撰寫程式,要如何將數據透過藍牙發送?是否有相關暫存器、Buffer?(類似Uart的概念)
還是只能用官方已經寫好的程式下去修改?
CC2540可以作为单纯的8051编程也可以作为BLE的芯片编程,
如果您需要BLE协议栈就必须要用TI的协议栈。如果是单纯的8051编程TI也提供例程,但是不带有任何蓝牙协议栈,就是直接对GPIO操作
目前想要做到的是將原用uart發送的數據,改成用無線收發,如果我想做無限的收發,就只能用TI已經寫好的程式模組?
无线的收发您指的是使用BLE?如果是BLE,是否可以理解成串口透传?
单纯使用8051编程也可以使用无线部分的啊 只是就是自定义协议 不是蓝牙协议了
我整理一下我的問題:
問題一 :
您所說的藍牙協議是指GATT、ATT等各層連接而成的通訊協議吧?也就是假如我想用藍牙功能,只有一個辦法,就是必須用TI已經寫好的所謂藍牙協議的程式模組下去做修改,對吧?
問題二
如果我想做的只是將原本Uart傳送的東西,改成無線的發送,就像是您說的自定義協議,要如何發送?應該控制那些暫存器?
问题一回答:
是的,这样的话就是CC2540收取UART口过来的数据然后通过蓝牙发送出去 对方通过蓝牙接收
问题二回答:
TI 有提供proprietary的per test的代码。但是这个代码不包含CC2540的,你可以参考CC2541的,以及CC2540的手册来尝试达成你想要的。
-
http://www.ti.com/litv/zip/swrc251b
那這樣我大致了解了,要用藍牙發送或接收,就只能用原來TI已經寫好的協議模組程式下去做修改。
那請問如果用藍牙來做發送跟接收,需要將資料放在哪裡(類似Buffer)?才能透過協議發送出去?
调用GATT和GAP层的接口完成通讯,
参考例程里面的SimpleBLEPeripheral和SimpleBLECentral
BLE是通过characteristic属性来传递数据的
不好意思,還有一個疑問,UUID的定義位址是固定的嗎? 例如: 0x23(Handle) 0x2800(Type) GATT_PRIMARY_SERVICE_UUID
Handle和 Type是固定的嗎? 還是使用者可依照自己需求作修改?
想要自定义UUID可以不用关心handle和type,协议里面要操作某个特征值就要通过handle来操作,在通讯建立起来之后handle就自然得到了
UUID的排列顺序可以自己定义
謝謝您的答覆,大致上了解了,日後有問題還請多多指教!