BL652 UART




FT232RLを接続して、PCにUART経由で通信できるようにしてやる。XAIOを用いてhttps://funasover.blogspot.com/2023/02/nrf-uart.htmlで同じ事をしている。

【ブレイクアウトボード】

純正のボードnRF52 PCA10040では、UARTのTXはP0.06、RXはP0.08に接続されている。これBL652ではP0.06は19番、P0.08は17番に接続されている。



これらをまたまたエナメル線で接続してやる。(どこでも本来よいのでGPIOのテストに使ったピンをアサインしても本当はよい)

【テストコードのビルト】

exampleの下にあるperipheralの中のuartをコピーする。


example以下に作った自身の作業フォルダーにコピーをとる。ここでは4_BL652_uartという名前にした。


pca10040のフォルダの下、\pca10040\blank\sesにある

uart_pca10040.emProject

を開いてやる。このままコンパイルするとエラーがいろいろ出るはず。

①flash_placement.xml

この中にある size=0x04を削除

②unknown type name '__printf_tag_ptr'のエラーは、retarget.cを削除

③ Projectを右クリック、OptionからCommonを選択して、LibraryでライブラリIOの部分をRTTを選択


これでコンパイルが通るはず。
ピンのアサインは、pca10040に合わせてあるので、このままビルトし、書き込みができるはず。

【UARTテスト】

無事にビルトし、書き込みが出きていれば、エコーバックしてくるのが確認できる。

(送った文字がそのまま画面に出てきて、qを入力すると停止する)

複数の文字の送信については、https://funasover.blogspot.com/2023/02/nrf-uart.html


ここまでのフォルダをコピーして、4_2_BL652_uartという名前をつけてみる。

uint8_t  UART_TX_Buffer[UART_TX_BUF_SIZE];

複数送信するバッファを用意してやる。

末尾に、以下の関数uart_printを定義

void uart_print(uint8_t data_string[]){

  static uint8_t str_array[256];

  memcpy(str_array,data_string,strlen(data_string));  

  for (uint32_t i = 0; i < strlen(str_array); i++)

  {

      while (app_uart_put(str_array[i]) != NRF_SUCCESS);

  }

  memset(&str_array,0x00,UART_RX_BUF_SIZE);//clear str_array

}

whileの中を

    while (true)

    {

      sprintf(UART_TX_Buffer,"This is a UART test.\n\r");

      uart_print(UART_TX_Buffer);

      nrf_delay_ms(500);

    }

とでもしてやる。







 

コメント

このブログの人気の投稿

Attiny85とAQM0802A(LCD)のI2C接続

CH9329で日本語キーボード109で正しく表示する方法