BLE基礎 (13)
2024/08/29
前回 は UART と USB CDC ACM を有効にすると UART Async API が使えないという件が終わった。
気付く元となった Nordic UART Service を使う DevAcademy に戻ろう。
話の続きとしてはBLE基礎 (12)になる。
Lesson 4 - Exercise 3
最終的には UART と USB CDC ACM を両方有効にしても動いた。
いくつか変更が必要だった。
app.overlayの内容をボード定義のoverlayファイルにコピーした- 両方ある場合、ボード定義のoverlayファイルの方が優先され 
app.overlayは読み込まれないようだ 
- 両方ある場合、ボード定義のoverlayファイルの方が優先され 
 prj.confにCONFIG_UART_LINE_CTRL=nを追加- ncs の方に置いているボード定義の defconfig に 
CONFIG_UART_LINE_CTRL=yを書いていた- USB CDC ACM を有効にするからまねして置いていただけで確認はしていない
 
 - 有効な場合、UART の初期化でDTR待ちをするようになっていた
        
- CTS/RTS が有効だとうまいことやってくれるのか?
 - あるいは USB CDC ACM だったらできるとか?
 - 何にせよ、いまの私の接続では CTS/RTS を使っていないし 
uart0を使っているので無限待ちしてしまう 
 - このブロックをまるまる削除するだけでもよかったかもしれない
 
- ncs の方に置いているボード定義の defconfig に 
 - ログの出力はRTTではないようにした
    
- これは動かなかったときに関係があるかもしれないと思ってやっただけ
 - ログ出力は UART と USB CDC ACM を試したので、RTT は別途試そう
 
 CONFIG_UART_0_INTERRUPT_DRIVEN=nを設定- USB CDC ACM を有効にするとこれが
yになり、UART Async API が使用できなくなってuart_callback_set()でエラーになるため 
- USB CDC ACM を有効にするとこれが
 
こんなところである。
DTR のところがちょっと気になった。 nRF は UART はあるが DTR とかを使うなら RS-232C みたいなちゃんとしたものを間に挟まないといけないのでは。
などと考えていたが、これは DK ならそのまま動くはずだ。
Console over CDC ACM UARTでもUART_LINE_CTRL_DTRを見るようになっているので、もうそういうものと思っておけば良いのか。
    writer: hiro99ma