意味があるかわからないがArduinoで1200bpsのソフトシリアルライブラリ化
6560 ワード
目的
ソフトウェアシリアルのテスト
メインプログラム
//SER_LB_1200_UNO_1
#include <Arduino.h>
#include "SER_1200_UNO_1.h"
//初期化
void setup()
{
//シリアルの初期化
pc.beginNS(1200);
} //setup
//メインループ
void loop()
{
//データの表示
pc.printNS("HELLO WORLD\r\n");
delay(1000);
} //loop
SER_1200_UNO_1.hのプログラム
#ifndef TEST_H
#define TEST_H
//SER_LB_1200_UNO_1_LIB
#define TX1 1
#define DW digitalWrite
//クラスの定義
struct _pc
{
void beginNS(int sp); //メソッドの宣言
int putcNS(char ch); //メソッドの宣言
int printNS(char *str1); //メソッドの宣言
};
//ポートをhiにする 初期化
//メソッドの定義
void _pc::beginNS(int sp)
{
//ポートをhiにする初期化
pinMode(TX1, OUTPUT);
DW(TX1, HIGH);
}
//仮想シリアルへの一文字出力 1200bps
//メソッドの定義
int _pc::putcNS(char ch)
{
DW(TX1, HIGH);
DW(TX1, LOW);//START
delayMicroseconds(832); //START BIT WAIT
for (int ii = 0; ii < 8; ii++) {
DW(TX1, (ch >> ii) & 1 );
delayMicroseconds(832); //DATA 1-8BIT WAIT
}//for
DW(TX1, HIGH);//Stop
delayMicroseconds(832); //StOP BIT WAIT
return (0);
}
//文字列の表示
//メソッドの定義
int _pc::printNS(char *str1)
{
//文字の中身がゼロか
while (*str1) {
//一文字出力
putcNS(*str1 ++);
} //while
//戻り値
return (0);
}
//実体の作成
_pc pc;
#endif
Author And Source
この問題について(意味があるかわからないがArduinoで1200bpsのソフトシリアルライブラリ化), 我々は、より多くの情報をここで見つけました https://qiita.com/caa45040/items/5b48c56b02628b406b2d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .