質問: ### 前提・実現したいこと 私は現在、BLENano2を用いてデータをAndroid端末へ送信使用としています。 BLENano2とAndroid端末はBLE通信をします。 (セントラル:Android、ペリフェラル:BLENano2) データはI2C通信により受け取ったデータを送信したいのですが、とりあえず適当に変数に入れたデータを送信することが確認できれば良いと考えています。 ### 試したこと SDK15.0.0の"ble_app_uart"を使用しているのですが、 データの送信を行うために以下の手順を実行すればよいということで試しました 1)データを送信するための関数"ble_nus_data_send"でTimerを作成する 2)main()内のadvertising_start()の直後でapp_timer_startを呼び出す この2ステップをするだけで良いと調べていてわかりました。 ### 発生している問題・エラーメッセージ advertising_startの直後にapptimer_startでble_nus_data_sendを定期的に呼びだそうとすると、BLE通信が切断されてしまいます。 詳しく説明すると、現段階ではテストとしてセントラルをiPhoneの既存アプリのnRFConnectを使用してペリフェラルをSDKで作成したプロブラムをBLENano2で動かしています。 SDKのble_app_uartのプログラムを何も編集しないでそのまま実行するとnRFConnect上でBLENano2をSCANして接続することができます。しかしble_nus_data_send関数をプログラムに追加して実行すると、nRFConnect上で表示はされるのですが、接続を試みようとconnectボタンを押すと一瞬接続されますがその直後に切断されてしまいます。その後何度も接続を試みようとしてもすぐに切断されてしまいます。 BLENano2だけではJ-Linkがないため、デバッグをすることができずに困っているので、原因が分かる方回答をお願いします。 ### 補足情報 開発環境:keil μversion5 SDK version:15.0.0 使用マイコン:BLENano2
回答: timerは使わずにmain()内のforループで呼び出すことで解決しました。