Previous: 7.3.5. バックアップレジスタの読み込み |
Up: 7.3. バックアップレジスタの利用方法 |
Next: 7.3.7. バックアップレジスタへの書き込み |
このサンプルではアスキーコードをバックアップレジスタに格納しましたが、アスキーコードは8ビットなので、16ビットのバックアップレジスタには2文字分が格納できます。16ビット分目一杯に使わないともったいないですから、上位8ビットと下位8ビットにわけて文字データを格納することにします。
バックアップレジスタの内容を確認した後は、COM_Char_Scanf関数で、これからバックアップレジスタに書き込む内容をターミナルから取得します。COM_Char_Scanf関数(表 13?2)はSTM32のライブラリ関数ではなく、筆者が本書用に作成したターミナル通信用の関数です。
表 13?2 COM_Char_Scanf関数
関数プロトタイプ |
void COM_Char_Scanf(uint8_t* ReadBuffer, uint8_t MaxLen) |
|
動作 |
COMポートから入力される文字列を取得します。ENTERが入力された時点で復帰します。不用意にメモリを破壊しないよう、最大文字数が指定できます。配列の末尾にはNULL文字を挿入します。 |
|
引数 |
ReadBuffer |
文字列を格納する配列へのポインタ |
MaxLen |
最大文字数 |
|
戻り値 |
無し |
|
インクルードヘッダ |
scanf.h |
使用する際には、以下の各ヘッダをインクルードするようにしてください。
#include “com_config.h” #include “scanf.h” |
このサンプルでは、最初のバックアップレジスタは合い言葉用に使用していますので、残りのバックアップレジスタの数に2を掛けた数を最大数としています。
COM_Char_Scanf(RxBuffer, (BKP_DR_NUMBER-1)*2) |
Previous: 7.3.5. バックアップレジスタの読み込み |
Up: 7.3. バックアップレジスタの利用方法 |
Next: 7.3.7. バックアップレジスタへの書き込み |