近期使用stm8除錯nrf905,編寫完**後,很順利地便把一組資料傳輸成功,但再一次傳送資料時,接收方就接收不到了。
經過反覆翻查,最終確定問題出在了傳送方。
原因是在每一次傳送完畢後,nrf905需要進入standby模式。在先前有問題的程式裡,傳送完畢後進入standby是通過將trx_ce引腳拉低,pwr_up和tx_en保持高電平來實現的,因為手冊上註明,只要trx_ce為低,pwr_up為高則進入standby模式。待需要再次傳送資料時再將它拉高,進入shockburst tx模式。
感覺一切都順理成章,而結果卻強差人意,之後的傳送都不成功。
解決辦法:
在每一次傳送完畢後需進入standby時,同時拉低trx_ce和tx_en,使nrf905進入standby模式,在再次傳送資料時,同時拉高這兩個引腳,傳送資料便不會出問題。
造成這個問題的原因還不清楚,手冊裡和手頭上的例程都沒有給出提示。如果大家也遇到同樣的問題,希望這個方法能幫到大家。