|
@@ -1,227 +1,227 @@
|
|
|
-## 一、项目名称
|
|
|
+## 涓€銆侀」鐩�悕绉�
|
|
|
adapterBoardDriver
|
|
|
|
|
|
-## 二、产品类型
|
|
|
+## 浜屻€佷骇鍝佺被鍨�
|
|
|
|
|
|
-演示板
|
|
|
+婕旂ず鏉�
|
|
|
|
|
|
-## 三、应用场景
|
|
|
+## 涓夈€佸簲鐢ㄥ満鏅�
|
|
|
|
|
|
-无线数据收发、测试通讯距离
|
|
|
+鏃犵嚎鏁版嵁鏀跺彂銆佹祴璇曢€氳�璺濈�
|
|
|
|
|
|
-## 四、传感器及驱动接口
|
|
|
+## 鍥涖€佷紶鎰熷櫒鍙婇┍鍔ㄦ帴鍙�
|
|
|
|
|
|
-无
|
|
|
+鏃�
|
|
|
|
|
|
-## 五、按键
|
|
|
-6个
|
|
|
-1. `S1`按键可以移动光标(选择的项会反显)向上选择设置项,或向上设置数值,可以循环移动选择
|
|
|
-1. `S2`按键可以返回上一个界面
|
|
|
-1. `S3`按键可以移动光标(选择的项会反显)向下选择设置项,或向上设置数值,可以循环移动选择
|
|
|
-1. `S4`按键功能待定
|
|
|
-1. `S5`按键,功能1:开机界面时,按下进入功能选择界面。功能2:确定选择项目。功能3:退出设置状态
|
|
|
+## 浜斻€佹寜閿�
|
|
|
+6涓�
|
|
|
+1. `S1`鎸夐敭鍙�互绉诲姩鍏夋爣锛堥€夋嫨鐨勯」浼氬弽鏄撅級鍚戜笂閫夋嫨璁剧疆椤癸紝鎴栧悜涓婅�缃�暟鍊硷紝鍙�互寰�幆绉诲姩閫夋嫨
|
|
|
+1. `S2`鎸夐敭鍙�互杩斿洖涓婁竴涓�晫闈�
|
|
|
+1. `S3`鎸夐敭鍙�互绉诲姩鍏夋爣锛堥€夋嫨鐨勯」浼氬弽鏄撅級鍚戜笅閫夋嫨璁剧疆椤癸紝鎴栧悜涓婅�缃�暟鍊硷紝鍙�互寰�幆绉诲姩閫夋嫨
|
|
|
+1. `S4`鎸夐敭鍔熻兘寰呭畾
|
|
|
+1. `S5`鎸夐敭锛屽姛鑳�1锛氬紑鏈虹晫闈㈡椂锛屾寜涓嬭繘鍏ュ姛鑳介€夋嫨鐣岄潰銆傚姛鑳�2锛氱‘瀹氶€夋嫨椤圭洰銆傚姛鑳�3锛氶€€鍑鸿�缃�姸鎬�
|
|
|
|
|
|
-## 六、LED指示灯
|
|
|
+## 鍏�€丩ED鎸囩ず鐏�
|
|
|
|
|
|
|
|
|
-2个
|
|
|
-1. `D5`蓝色LED,发送成功指示灯灯
|
|
|
-2. `D4`红色LED,接收成功指示灯灯
|
|
|
+2涓�
|
|
|
+1. `D5`钃濊壊LED锛屽彂閫佹垚鍔熸寚绀虹伅鐏�
|
|
|
+2. `D4`绾㈣壊LED锛屾帴鏀舵垚鍔熸寚绀虹伅鐏�
|
|
|
|
|
|
-## 七、显示器类型及驱动接口
|
|
|
+## 涓冦€佹樉绀哄櫒绫诲瀷鍙婇┍鍔ㄦ帴鍙�
|
|
|
|
|
|
-深圳市晶联讯电子的液晶模块`JLX19296G-382-PN`
|
|
|
-该液晶模块支持4线SPI串行接口和IIC接口,本项目使用IIC接口驱动,显示大小192*96 点阵
|
|
|
+娣卞湷甯傛櫠鑱旇�鐢靛瓙鐨勬恫鏅舵ā鍧梎JLX19296G-382-PN`
|
|
|
+璇ユ恫鏅舵ā鍧楁敮鎸�4绾縎PI涓茶�鎺ュ彛鍜孖IC鎺ュ彛锛屾湰椤圭洰浣跨敤IIC鎺ュ彛椹卞姩锛屾樉绀哄ぇ灏�192*96 鐐归樀
|
|
|
|
|
|
-## 八、功耗要求
|
|
|
-无
|
|
|
+## 鍏�€佸姛鑰楄�姹�
|
|
|
+鏃�
|
|
|
|
|
|
-## 九、供电方式
|
|
|
+## 涔濄€佷緵鐢垫柟寮�
|
|
|
|
|
|
-支持三种供电
|
|
|
-1. USB的MICRO-B插头供电
|
|
|
-2. 3*5号电池供电
|
|
|
-3. 2pin的PH座子供电,注意电压不能超过5V
|
|
|
+鏀�寔涓夌�渚涚數
|
|
|
+1. USB鐨凪ICRO-B鎻掑ご渚涚數
|
|
|
+2. 3*5鍙风數姹犱緵鐢�
|
|
|
+3. 2pin鐨凱H搴у瓙渚涚數锛屾敞鎰忕數鍘嬩笉鑳借秴杩�5V
|
|
|
|
|
|
-## 十一、尺寸
|
|
|
+## 鍗佷竴銆佸昂瀵�
|
|
|
|
|
|
87mm*131.5mm
|
|
|
|
|
|
-## 十二、射频频段
|
|
|
+## 鍗佷簩銆佸皠棰戦�娈�
|
|
|
|
|
|
-## 十三、射频芯片方案
|
|
|
+## 鍗佷笁銆佸皠棰戣姱鐗囨柟妗�
|
|
|
|
|
|
|
|
|
-## 十四、主控芯片方案
|
|
|
+## 鍗佸洓銆佷富鎺ц姱鐗囨柟妗�
|
|
|
|
|
|
-`AT32F413RCT7`该MCU与`STM32F103RCT6`软硬件兼容
|
|
|
+`AT32F413RCT7`璇�CU涓巂STM32F103RCT6`杞�‖浠跺吋瀹�
|
|
|
|
|
|
-## 十五、认证要求
|
|
|
+## 鍗佷簲銆佽�璇佽�姹�
|
|
|
|
|
|
-无
|
|
|
+鏃�
|
|
|
|
|
|
-## 十六、外部连接接口
|
|
|
+## 鍗佸叚銆佸�閮ㄨ繛鎺ユ帴鍙�
|
|
|
|
|
|
-1. `P7`串口转USB
|
|
|
-1. `J1``J2`MCU的GPIO口
|
|
|
-1. `P1`microBIT插槽,用于无线模块转接板连接
|
|
|
-1. `P7`MICRO-B类型USB座子,供电
|
|
|
-1. `P6`外部供电
|
|
|
-1. `P5`仿真烧录接口
|
|
|
+1. `P7`涓插彛杞琔SB
|
|
|
+1. `J1``J2`MCU鐨凣PIO鍙�
|
|
|
+1. `P1`microBIT鎻掓Ы锛岀敤浜庢棤绾挎ā鍧楄浆鎺ユ澘杩炴帴
|
|
|
+1. `P7`MICRO-B绫诲瀷USB搴у瓙锛屼緵鐢�
|
|
|
+1. `P6`澶栭儴渚涚數
|
|
|
+1. `P5`浠跨湡鐑у綍鎺ュ彛
|
|
|
|
|
|
-## 十七、编译器
|
|
|
+## 鍗佷竷銆佺紪璇戝櫒
|
|
|
|
|
|
`MDK-ARM Standard Version: 5.14.0.0`
|
|
|
|
|
|
-## 十八、编程语言
|
|
|
+## 鍗佸叓銆佺紪绋嬭�瑷€
|
|
|
|
|
|
-C99标准
|
|
|
+C99鏍囧噯
|
|
|
|
|
|
-## 十九、SDK版本
|
|
|
+## 鍗佷節銆丼DK鐗堟湰
|
|
|
|
|
|
`STM32F10x_StdPeriph_Lib_V3.5.0`
|
|
|
|
|
|
-## 二十、功能描述
|
|
|
+## 浜屽崄銆佸姛鑳芥弿杩�
|
|
|
|
|
|
|
|
|
-### 数据包收发测试
|
|
|
+### 鏁版嵁鍖呮敹鍙戞祴璇�
|
|
|
|
|
|
-#### 发送测试
|
|
|
+#### 鍙戦€佹祴璇�
|
|
|
|
|
|
-`主界面`<img src="image/mainUi.png" height="60" width="85">-->按键`S5`-->功能选择`Enter RF Transmiter`<img src="image/select_tx.png" height="60" width="85">-->按键`S5`-->进入`Packet Tx`<img src="image/packetTx.png" height="60" width="85">-->按键`S5`-->开始发送,同时`START`会闪烁显示
|
|
|
-发送完成后,6S内收到ACK,会立即触发重新发送,同时会重新设置重发超时时间(从开始发送到接收到ACK的时间),超时后自动重发,超时重发10次后,重发超时时间自动切换回6S。
|
|
|
-发送成功`D5`蓝色LED灯闪烁一下。
|
|
|
+`涓荤晫闈�<img src="image/mainUi.png" height="60" width="85">-->鎸夐敭`S5`-->鍔熻兘閫夋嫨`Enter RF Transmiter`<img src="image/select_tx.png" height="60" width="85">-->鎸夐敭`S5`-->杩涘叆`Packet Tx`<img src="image/packetTx.png" height="60" width="85">-->鎸夐敭`S5`-->寮€濮嬪彂閫侊紝鍚屾椂`START`浼氶棯鐑佹樉绀�
|
|
|
+鍙戦€佸畬鎴愬悗锛�6S鍐呮敹鍒癆CK锛屼細绔嬪嵆瑙﹀彂閲嶆柊鍙戦€侊紝鍚屾椂浼氶噸鏂拌�缃�噸鍙戣秴鏃舵椂闂达紙浠庡紑濮嬪彂閫佸埌鎺ユ敹鍒癆CK鐨勬椂闂达級锛岃秴鏃跺悗鑷�姩閲嶅彂锛岃秴鏃堕噸鍙�10娆″悗锛岄噸鍙戣秴鏃舵椂闂磋嚜鍔ㄥ垏鎹㈠洖6S銆�
|
|
|
+鍙戦€佹垚鍔焋D5`钃濊壊LED鐏�棯鐑佷竴涓嬨€�
|
|
|
|
|
|
-如图<img src="image/packetTx.png" height="160" width="195">
|
|
|
-1. `413ms`为从开始发送到无线收到对方回复的应答所消耗的时间,若该处显示`OUT`,则表示接收等待ACK超时。
|
|
|
-2. `100%`为统计的丢包率,重新按下按键`S5`重新计数
|
|
|
-3. `hello world?`为无线收到的数据包,其中的`?`位置的字符每次都会不一样
|
|
|
-4. `-004dBm`为最新一次无线收到的数据包的信号强度
|
|
|
+濡傚浘<img src="image/packetTx.png" height="160" width="195">
|
|
|
+1. `413ms`涓轰粠寮€濮嬪彂閫佸埌鏃犵嚎鏀跺埌瀵规柟鍥炲�鐨勫簲绛旀墍娑堣€楃殑鏃堕棿锛岃嫢璇ュ�鏄剧ず`OUT`锛屽垯琛ㄧず鎺ユ敹绛夊緟ACK瓒呮椂銆�
|
|
|
+2. `100%`涓虹粺璁$殑涓㈠寘鐜囷紝閲嶆柊鎸変笅鎸夐敭`S5`閲嶆柊璁℃暟
|
|
|
+3. `hello world?`涓烘棤绾挎敹鍒扮殑鏁版嵁鍖咃紝鍏朵腑鐨刞?`浣嶇疆鐨勫瓧绗︽瘡娆¢兘浼氫笉涓€鏍�
|
|
|
+4. `-004dBm`涓烘渶鏂颁竴娆℃棤绾挎敹鍒扮殑鏁版嵁鍖呯殑淇″彿寮哄害
|
|
|
|
|
|
-#### 接收测试
|
|
|
+#### 鎺ユ敹娴嬭瘯
|
|
|
|
|
|
-`主界面`<img src="image/mainUi.png" height="60" width="85">-->按键`S5`-->功能选择`Enter RF Receiver`<img src="image/select_rx.png" height="60" width="85">-->按键`S5`-->进入`Packet Rx`<img src="image/packetRx.png" height="60" width="85">-->按键`S5`-->开始接收,同时`START`会闪烁显示
|
|
|
-收到数据后`D4`红色LED灯闪烁一下
|
|
|
+`涓荤晫闈�<img src="image/mainUi.png" height="60" width="85">-->鎸夐敭`S5`-->鍔熻兘閫夋嫨`Enter RF Receiver`<img src="image/select_rx.png" height="60" width="85">-->鎸夐敭`S5`-->杩涘叆`Packet Rx`<img src="image/packetRx.png" height="60" width="85">-->鎸夐敭`S5`-->寮€濮嬫帴鏀讹紝鍚屾椂`START`浼氶棯鐑佹樉绀�
|
|
|
+鏀跺埌鏁版嵁鍚巂D4`绾㈣壊LED鐏�棯鐑佷竴涓�
|
|
|
|
|
|
-如图<img src="image/packetRx.png" height="160" width="195">
|
|
|
-1. `11.67mA`为当前无线模组的工作电流
|
|
|
-1. `-13dBm`为最新一次无线收到的数据包的信号强度
|
|
|
-1. `hello world2`、`hello world3`、`hello world4`为无线收到的3个数据包,收到新的数据包时显示会向上滚动
|
|
|
+濡傚浘<img src="image/packetRx.png" height="160" width="195">
|
|
|
+1. `11.67mA`涓哄綋鍓嶆棤绾挎ā缁勭殑宸ヤ綔鐢垫祦
|
|
|
+1. `-13dBm`涓烘渶鏂颁竴娆℃棤绾挎敹鍒扮殑鏁版嵁鍖呯殑淇″彿寮哄害
|
|
|
+1. `hello world2`銆乣hello world3`銆乣hello world4`涓烘棤绾挎敹鍒扮殑3涓�暟鎹�寘锛屾敹鍒版柊鐨勬暟鎹�寘鏃舵樉绀轰細鍚戜笂婊氬姩
|
|
|
|
|
|
-### 数据收发软件实现
|
|
|
+### 鏁版嵁鏀跺彂杞�欢瀹炵幇
|
|
|
|
|
|
-#### 周期性发送流程
|
|
|
+#### 鍛ㄦ湡鎬у彂閫佹祦绋�
|
|
|
|
|
|
<img src='https://g.gravizo.com/svg?
|
|
|
digraph G {
|
|
|
- 初始化 -> 进入接收状态[style=bold,label="设置模组型号:\nmyRadio_setChipType\n初始化射频:\nmyRadio_init"];
|
|
|
- 进入接收状态 -> 按键操作进入发送测试[style=bold,label="myRadio_receiver"];
|
|
|
- 按键操作进入发送测试 -> 周期时间到[style=bold,label="myRadio_receiver"];
|
|
|
- 周期时间到 -> 调用射频发送[style=bold,label="myRadio_transmit"];
|
|
|
- 调用射频发送 -> 发送完成[style=bold,label="产生回调:\nrfRx_callback\n状态值:\nTX_STA_SECCESS"];
|
|
|
- 发送完成 -> 重新进入接收状态[style=bold,label="myRadio_receiver"];
|
|
|
+ 鍒濆�鍖� -> 杩涘叆鎺ユ敹鐘舵€乕style=bold,label="璁剧疆妯$粍鍨嬪彿:\nmyRadio_setChipType\n鍒濆�鍖栧皠棰�:\nmyRadio_init"];
|
|
|
+ 杩涘叆鎺ユ敹鐘舵€� -> 鎸夐敭鎿嶄綔杩涘叆鍙戦€佹祴璇昜style=bold,label="myRadio_receiver"];
|
|
|
+ 鎸夐敭鎿嶄綔杩涘叆鍙戦€佹祴璇� -> 鍛ㄦ湡鏃堕棿鍒癧style=bold,label="myRadio_receiver"];
|
|
|
+ 鍛ㄦ湡鏃堕棿鍒� -> 璋冪敤灏勯�鍙戦€乕style=bold,label="myRadio_transmit"];
|
|
|
+ 璋冪敤灏勯�鍙戦€� -> 鍙戦€佸畬鎴怺style=bold,label="浜х敓鍥炶皟锛歕nrfRx_callback\n鐘舵€佸€硷細\nTX_STA_SECCESS"];
|
|
|
+ 鍙戦€佸畬鎴� -> 閲嶆柊杩涘叆鎺ユ敹鐘舵€乕style=bold,label="myRadio_receiver"];
|
|
|
}
|
|
|
'/>
|
|
|
|
|
|
-### 功能参数设置
|
|
|
+### 鍔熻兘鍙傛暟璁剧疆
|
|
|
|
|
|
<div align="center">
|
|
|
<img src="image/setting.png" height="150" width="200">
|
|
|
</div>
|
|
|
|
|
|
-`主界面`<img src="image/mainUi.png" height="60" width="85">-->按键`S5`-->功能选择`Enter RF Setting`<img src="image/select_set.png" height="60" width="85">-->按键`S5`-->进入`Setting`<img src="image/setting.png" height="60" width="85">,按下`S1`或者`S3`切换设置项目,确定需要设置的项目后,按下`S5`进行参数设置,该项的光标会闪烁显示,此时可通过按键`S1`或者`S3`上下调节参数。再按下`S5`退出设置,即可选择其他选项设置。
|
|
|
-1. `Type`,设置选择对应的模组型号,当前demo板的固件可能会兼容多个型号的模组,比如以下型号的模组可以共用一套驱动固件
|
|
|
+`涓荤晫闈�<img src="image/mainUi.png" height="60" width="85">-->鎸夐敭`S5`-->鍔熻兘閫夋嫨`Enter RF Setting`<img src="image/select_set.png" height="60" width="85">-->鎸夐敭`S5`-->杩涘叆`Setting`<img src="image/setting.png" height="60" width="85">锛屾寜涓媊S1`鎴栬€卄S3`鍒囨崲璁剧疆椤圭洰锛岀‘瀹氶渶瑕佽�缃�殑椤圭洰鍚庯紝鎸変笅`S5`杩涜�鍙傛暟璁剧疆锛岃�椤圭殑鍏夋爣浼氶棯鐑佹樉绀猴紝姝ゆ椂鍙�€氳繃鎸夐敭`S1`鎴栬€卄S3`涓婁笅璋冭妭鍙傛暟銆傚啀鎸変笅`S5`閫€鍑鸿�缃�紝鍗冲彲閫夋嫨鍏朵粬閫夐」璁剧疆銆�
|
|
|
+1. `Type`锛岃�缃�€夋嫨瀵瑰簲鐨勬ā缁勫瀷鍙凤紝褰撳墠demo鏉跨殑鍥轰欢鍙�兘浼氬吋瀹瑰�涓�瀷鍙风殑妯$粍锛屾瘮濡備互涓嬪瀷鍙风殑妯$粍鍙�互鍏辩敤涓€濂楅┍鍔ㄥ浐浠�
|
|
|
1. VG2212S433N0S1
|
|
|
-2. `Chnl`,设置当前模组的无线信道,信道对应的无线率会根据`Type`类型和`Step`信道间隔的设置而改变
|
|
|
-3. `Step`,信道间隔,即每个信道之间的频率带宽,该设置需根据实际情况而定,不宜太小,过小的间隔可能会造成不同信道的设备串频造成干扰。
|
|
|
-4. `TxPower`,无线发射功率。发射功率越大,功耗越高,相应的通讯距离也会越远
|
|
|
-5. `RfBr`,无线波特率。无线波特率的大小即传输速率的大小,无线波特率越大,传输消耗时间越小,相应的传输距离越短,反之则越远。最终的通讯距离,在排除外在因素的情况下,可以从无线发射功率和无线波特率这两个参数评估
|
|
|
-## 二十一、备注说明
|
|
|
-### 射频驱动移植
|
|
|
-1. 需要将文件夹`radio`中的API全部移植,与硬件相关的已全部定义在`radio/myRadio_gpio.c`中,若目标平台也是C语言环境,将文件夹`radio`中的文件拷贝过来后,只需对应的修改`radio/myRadio_gpio.c`文件中的GPIO定义既可,由于`myRadio_gpio.c`中用到的GPIO是宏定义在`project/board.h`,所以也需要将`radio/board.h`中的定义移植过来。如果MCU平台也是相近的,只需修改`project/board.h`中对应的宏定义即可。
|
|
|
-2. 本公司为了统一demo程序,将射频相关的操作重新定义了一层,详见`radio/myRadio.c`,无线应用开发,可以参考借鉴。
|
|
|
-### 射频芯片驱动IO口说明
|
|
|
-驱动IO口均定义在`project/board.h`中
|
|
|
+2. `Chnl`锛岃�缃�綋鍓嶆ā缁勭殑鏃犵嚎淇¢亾锛屼俊閬撳�搴旂殑鏃犵嚎鐜囦細鏍规嵁`Type`绫诲瀷鍜宍Step`淇¢亾闂撮殧鐨勮�缃�€屾敼鍙�
|
|
|
+3. `Step`锛屼俊閬撻棿闅旓紝鍗虫瘡涓�俊閬撲箣闂寸殑棰戠巼甯﹀�锛岃�璁剧疆闇€鏍规嵁瀹為檯鎯呭喌鑰屽畾锛屼笉瀹滃お灏忥紝杩囧皬鐨勯棿闅斿彲鑳戒細閫犳垚涓嶅悓淇¢亾鐨勮�澶囦覆棰戦€犳垚骞叉壈銆�
|
|
|
+4. `TxPower`锛屾棤绾垮彂灏勫姛鐜囥€傚彂灏勫姛鐜囪秺澶э紝鍔熻€楄秺楂橈紝鐩稿簲鐨勯€氳�璺濈�涔熶細瓒婅繙
|
|
|
+5. `RfBr`锛屾棤绾挎尝鐗圭巼銆傛棤绾挎尝鐗圭巼鐨勫ぇ灏忓嵆浼犺緭閫熺巼鐨勫ぇ灏忥紝鏃犵嚎娉㈢壒鐜囪秺澶э紝浼犺緭娑堣€楁椂闂磋秺灏忥紝鐩稿簲鐨勪紶杈撹窛绂昏秺鐭�紝鍙嶄箣鍒欒秺杩溿€傛渶缁堢殑閫氳�璺濈�锛屽湪鎺掗櫎澶栧湪鍥犵礌鐨勬儏鍐典笅锛屽彲浠ヤ粠鏃犵嚎鍙戝皠鍔熺巼鍜屾棤绾挎尝鐗圭巼杩欎袱涓�弬鏁拌瘎浼�
|
|
|
+## 浜屽崄涓€銆佸�娉ㄨ�鏄�
|
|
|
+### 灏勯�椹卞姩绉绘�
|
|
|
+1. 闇€瑕佸皢鏂囦欢澶筦radio`涓�殑API鍏ㄩ儴绉绘�锛屼笌纭�欢鐩稿叧鐨勫凡鍏ㄩ儴瀹氫箟鍦╜radio/myRadio_gpio.c`涓�紝鑻ョ洰鏍囧钩鍙颁篃鏄疌璇�█鐜��锛屽皢鏂囦欢澶筦radio`涓�殑鏂囦欢鎷疯礉杩囨潵鍚庯紝鍙�渶瀵瑰簲鐨勪慨鏀筦radio/myRadio_gpio.c`鏂囦欢涓�殑GPIO瀹氫箟鏃㈠彲锛岀敱浜巂myRadio_gpio.c`涓�敤鍒扮殑GPIO鏄�畯瀹氫箟鍦╜project/board.h`锛屾墍浠ヤ篃闇€瑕佸皢`radio/board.h`涓�殑瀹氫箟绉绘�杩囨潵銆傚�鏋淢CU骞冲彴涔熸槸鐩歌繎鐨勶紝鍙�渶淇�敼`project/board.h`涓��搴旂殑瀹忓畾涔夊嵆鍙�€�
|
|
|
+2. 鏈�叕鍙镐负浜嗙粺涓€demo绋嬪簭锛屽皢灏勯�鐩稿叧鐨勬搷浣滈噸鏂板畾涔変簡涓€灞傦紝璇﹁�`radio/myRadio.c`锛屾棤绾垮簲鐢ㄥ紑鍙戯紝鍙�互鍙傝€冨€熼壌銆�
|
|
|
+### 灏勯�鑺�墖椹卞姩IO鍙h�鏄�
|
|
|
+椹卞姩IO鍙e潎瀹氫箟鍦╜project/board.h`涓�
|
|
|
|
|
|
|
|
|
-### 无线应用开发注意事项
|
|
|
-#### 无线频率
|
|
|
+### 鏃犵嚎搴旂敤寮€鍙戞敞鎰忎簨椤�
|
|
|
+#### 鏃犵嚎棰戠巼
|
|
|
|
|
|
-1. 避免使用中心频率为射频芯片使用的晶体频率整数倍的,比如晶体频率为32MHz,就需要避免使用`448MHz`的中心频点
|
|
|
+1. 閬垮厤浣跨敤涓�績棰戠巼涓哄皠棰戣姱鐗囦娇鐢ㄧ殑鏅朵綋棰戠巼鏁存暟鍊嶇殑锛屾瘮濡傛櫠浣撻�鐜囦负32MHz锛屽氨闇€瑕侀伩鍏嶄娇鐢╜448MHz`鐨勪腑蹇冮�鐐�
|
|
|
|
|
|
-#### 驱动调试
|
|
|
+#### 椹卞姩璋冭瘯
|
|
|
|
|
|
-1. 首先保证SPI通讯正常,具体SPI时序需根据射频芯片要求设置,可通过示波器或者逻辑分析仪进行硬件分析
|
|
|
-2. SPI通讯正常后,进一步调试查看寄存器操作,读写寄存器,若能正常操作,基本可判定移植成功了
|
|
|
+1. 棣栧厛淇濊瘉SPI閫氳�姝e父锛屽叿浣揝PI鏃跺簭闇€鏍规嵁灏勯�鑺�墖瑕佹眰璁剧疆锛屽彲閫氳繃绀烘尝鍣ㄦ垨鑰呴€昏緫鍒嗘瀽浠�繘琛岀‖浠跺垎鏋�
|
|
|
+2. SPI閫氳�姝e父鍚庯紝杩涗竴姝ヨ皟璇曟煡鐪嬪瘎瀛樺櫒鎿嶄綔锛岃�鍐欏瘎瀛樺櫒锛岃嫢鑳芥�甯告搷浣滐紝鍩烘湰鍙�垽瀹氱Щ妞嶆垚鍔熶簡
|
|
|
|
|
|
-#### 通讯距离
|
|
|
-影响无线传输距离的因素
|
|
|
-1. 无线电频谱,包括使用的无线频段和无线波特率
|
|
|
-2. 发射功率
|
|
|
-3. 天线增益,不同增益的天线对无线信号的接收效果影响很大
|
|
|
-4. 路径损耗,主要是包括无线使用的周围环境,比如楼宇、树木山峰遮挡
|
|
|
-5. 其他的无线信号干扰
|
|
|
+#### 閫氳�璺濈�
|
|
|
+褰卞搷鏃犵嚎浼犺緭璺濈�鐨勫洜绱�
|
|
|
+1. 鏃犵嚎鐢甸�璋憋紝鍖呮嫭浣跨敤鐨勬棤绾块�娈靛拰鏃犵嚎娉㈢壒鐜�
|
|
|
+2. 鍙戝皠鍔熺巼
|
|
|
+3. 澶╃嚎澧炵泭锛屼笉鍚屽�鐩婄殑澶╃嚎瀵规棤绾夸俊鍙风殑鎺ユ敹鏁堟灉褰卞搷寰堝ぇ
|
|
|
+4. 璺�緞鎹熻€楋紝涓昏�鏄�寘鎷�棤绾夸娇鐢ㄧ殑鍛ㄥ洿鐜��锛屾瘮濡傛ゼ瀹囥€佹爲鏈ㄥ北宄伴伄鎸�
|
|
|
+5. 鍏朵粬鐨勬棤绾夸俊鍙峰共鎵�
|
|
|
|
|
|
-## 二十二、软件开发
|
|
|
-### 开发注意事项
|
|
|
+## 浜屽崄浜屻€佽蒋浠跺紑鍙�
|
|
|
+### 寮€鍙戞敞鎰忎簨椤�
|
|
|
|
|
|
-### 工程文件架构
|
|
|
+### 宸ョ▼鏂囦欢鏋舵瀯
|
|
|
###
|
|
|
|
|
|
|
|
|
```c
|
|
|
..\adapterBoardDriver_xxxxxxxxxxxxxxx_Vxx
|
|
|
-├──app \\常用应用模块封装
|
|
|
-| └──
|
|
|
-├──core \\MCU内核文件
|
|
|
-| └──
|
|
|
-├──STM32F10x_FWLib \\MCU官方库函数
|
|
|
- └──
|
|
|
-├──image \\md文件显示用的图片
|
|
|
-| └──
|
|
|
-├──keil_v5 \\keil编译器工程文件,包含编译生成的HEX文件
|
|
|
-| └──Object \\编译生成的HEX文件在此文件夹
|
|
|
-├──peripheral \\项目用到的MCU外设
|
|
|
-| └──
|
|
|
-├──project \\项目的主函数和GPIO定义包含文件
|
|
|
-| └──
|
|
|
-├──radio \\射频底层驱动文件
|
|
|
-| ├──myRadio_gpio.c \\射频驱动接口硬件初始化
|
|
|
-| └──myRadio.c \\为无线应用通用封装API
|
|
|
+鈹溾攢鈹€app \\甯哥敤搴旂敤妯″潡灏佽�
|
|
|
+| 鈹斺攢鈹€
|
|
|
+鈹溾攢鈹€core \\MCU鍐呮牳鏂囦欢
|
|
|
+| 鈹斺攢鈹€
|
|
|
+鈹溾攢鈹€STM32F10x_FWLib \\MCU瀹樻柟搴撳嚱鏁�
|
|
|
+ 鈹斺攢鈹€
|
|
|
+鈹溾攢鈹€image \\md鏂囦欢鏄剧ず鐢ㄧ殑鍥剧墖
|
|
|
+| 鈹斺攢鈹€
|
|
|
+鈹溾攢鈹€keil_v5 \\keil缂栬瘧鍣ㄥ伐绋嬫枃浠讹紝鍖呭惈缂栬瘧鐢熸垚鐨凥EX鏂囦欢
|
|
|
+| 鈹斺攢鈹€Object \\缂栬瘧鐢熸垚鐨凥EX鏂囦欢鍦ㄦ�鏂囦欢澶�
|
|
|
+鈹溾攢鈹€peripheral \\椤圭洰鐢ㄥ埌鐨凪CU澶栬�
|
|
|
+| 鈹斺攢鈹€
|
|
|
+鈹溾攢鈹€project \\椤圭洰鐨勪富鍑芥暟鍜孏PIO瀹氫箟鍖呭惈鏂囦欢
|
|
|
+| 鈹斺攢鈹€
|
|
|
+鈹溾攢鈹€radio \\灏勯�搴曞眰椹卞姩鏂囦欢
|
|
|
+| 鈹溾攢鈹€myRadio_gpio.c \\灏勯�椹卞姩鎺ュ彛纭�欢鍒濆�鍖�
|
|
|
+| 鈹斺攢鈹€myRadio.c \\涓烘棤绾垮簲鐢ㄩ€氱敤灏佽�API
|
|
|
```
|
|
|
|
|
|
-### 无线应用通用封装API-radio/myRadio.c
|
|
|
-
|
|
|
-1. **初始化**-`void myRadio_init(int agr0, void *agr1_ptr)`
|
|
|
- 射频芯片驱动IO口初始化-`myRadio_gpio_init()`
|
|
|
- 射频基本参数初始化
|
|
|
-2. **射频运行底层执行API**-`void myRadio_process(void)`
|
|
|
- 放在while循环中执行
|
|
|
-3. **射频进入休眠API**-`void myRadio_abort(void)`
|
|
|
-4. **获取无线中心频率**-`uint32_t myRadio_getFrequency(void)`
|
|
|
-5. **设置无线中心频率**-`void myRadio_setFrequency(uint32_t freq)`
|
|
|
-6. **获取发射功率-**`int8_t myRadio_getTxPower(void)`
|
|
|
-7. **设置发射功率**-`void myRadio_setTxPower(int8_t power)`
|
|
|
-8. **获取无线波特率**-`uint8_t myRadio_getBaudrate(void)`
|
|
|
-9. **设置无线波特率**-`void myRadio_setBaudrate(uint8_t br)`
|
|
|
-10. **进入数据包发射模式**-`void myRadio_transmit(rfTxPacket_ts *packet)`
|
|
|
-11. **进入数据包接收模式**-`void myRadio_receiver(void)`
|
|
|
-12. **无线特殊模式功能**-`void myRadio_setCtrl(controlMode_te mode, uint32_t value)`
|
|
|
- 单载波发射功能,预留
|
|
|
- 进入direct模式,预留
|
|
|
- 连续调制波,预留
|
|
|
-13. **射频中断回调函数**`void myRadio_gpioCallback(uint8_t index)`
|
|
|
- 外部中断检测定义在`myRadio_gpio.c`
|
|
|
-14. 其他,官方未定义,属于第三方定义的常用API,不同厂家的射频方案不一定都能用
|
|
|
-
|
|
|
-
|
|
|
-### 版本更新
|
|
|
+### 鏃犵嚎搴旂敤閫氱敤灏佽�API-radio/myRadio.c
|
|
|
+
|
|
|
+1. **鍒濆�鍖�**-`void myRadio_init(int agr0, void *agr1_ptr)`
|
|
|
+ 灏勯�鑺�墖椹卞姩IO鍙e垵濮嬪寲-`myRadio_gpio_init()`
|
|
|
+ 灏勯�鍩烘湰鍙傛暟鍒濆�鍖�
|
|
|
+2. **灏勯�杩愯�搴曞眰鎵ц�API**-`void myRadio_process(void)`
|
|
|
+ 鏀惧湪while寰�幆涓�墽琛�
|
|
|
+3. **灏勯�杩涘叆浼戠湢API**-`void myRadio_abort(void)`
|
|
|
+4. **鑾峰彇鏃犵嚎涓�績棰戠巼**-`uint32_t myRadio_getFrequency(void)`
|
|
|
+5. **璁剧疆鏃犵嚎涓�績棰戠巼**-`void myRadio_setFrequency(uint32_t freq)`
|
|
|
+6. **鑾峰彇鍙戝皠鍔熺巼-**`int8_t myRadio_getTxPower(void)`
|
|
|
+7. **璁剧疆鍙戝皠鍔熺巼**-`void myRadio_setTxPower(int8_t power)`
|
|
|
+8. **鑾峰彇鏃犵嚎娉㈢壒鐜�**-`uint8_t myRadio_getBaudrate(void)`
|
|
|
+9. **璁剧疆鏃犵嚎娉㈢壒鐜�**-`void myRadio_setBaudrate(uint8_t br)`
|
|
|
+10. **杩涘叆鏁版嵁鍖呭彂灏勬ā寮�**-`void myRadio_transmit(rfTxPacket_ts *packet)`
|
|
|
+11. **杩涘叆鏁版嵁鍖呮帴鏀舵ā寮�**-`void myRadio_receiver(void)`
|
|
|
+12. **鏃犵嚎鐗规畩妯″紡鍔熻兘**-`void myRadio_setCtrl(controlMode_te mode, uint32_t value)`
|
|
|
+ 鍗曡浇娉㈠彂灏勫姛鑳斤紝棰勭暀
|
|
|
+ 杩涘叆direct妯″紡锛岄�鐣�
|
|
|
+ 杩炵画璋冨埗娉�紝棰勭暀
|
|
|
+13. **灏勯�涓�柇鍥炶皟鍑芥暟**`void myRadio_gpioCallback(uint8_t index)`
|
|
|
+ 澶栭儴涓�柇妫€娴嬪畾涔夊湪`myRadio_gpio.c`
|
|
|
+14. 鍏朵粬锛屽畼鏂规湭瀹氫箟锛屽睘浜庣�涓夋柟瀹氫箟鐨勫父鐢ˋPI锛屼笉鍚屽巶瀹剁殑灏勯�鏂规�涓嶄竴瀹氶兘鑳界敤
|
|
|
+
|
|
|
+
|
|
|
+### 鐗堟湰鏇存柊
|
|
|
|
|
|
#### V04
|
|
|
|
|
|
|
|
|
-## 二十三、免责说明
|
|
|
+## 浜屽崄涓夈€佸厤璐h�鏄�
|
|
|
|
|
|
-1、本工程驱动软件只提供做演示项目使用,未经过大批量项目验证,客户需谨慎使用,如果使用在正式项目中引发的所有问题,本司概不负责。使用过程若发现任何问题,可及时与本司相关人员联系。
|
|
|
-2、本工程所有文件可以用于商业性项目移植,无需向本司申请。
|
|
|
+1銆佹湰宸ョ▼椹卞姩杞�欢鍙�彁渚涘仛婕旂ず椤圭洰浣跨敤锛屾湭缁忚繃澶ф壒閲忛」鐩�獙璇侊紝瀹㈡埛闇€璋ㄦ厧浣跨敤锛屽�鏋滀娇鐢ㄥ湪姝e紡椤圭洰涓�紩鍙戠殑鎵€鏈夐棶棰橈紝鏈�徃姒備笉璐熻矗銆備娇鐢ㄨ繃绋嬭嫢鍙戠幇浠讳綍闂��锛屽彲鍙婃椂涓庢湰鍙哥浉鍏充汉鍛樿仈绯汇€�
|
|
|
+2銆佹湰宸ョ▼鎵€鏈夋枃浠跺彲浠ョ敤浜庡晢涓氭€ч」鐩�Щ妞嶏紝鏃犻渶鍚戞湰鍙哥敵璇枫€�
|
|
|
|