「ATmega328でUART通信」の版間の差分

ナビゲーションに移動 検索に移動
文字列「source lang」を「syntaxhighlight lang」に置換
(文字列「</source>」を「</syntaxhighlight>」に置換)
(文字列「source lang」を「syntaxhighlight lang」に置換)
 
17行目: 17行目:
BAUD : ボーレート<br>
BAUD : ボーレート<br>
Fosc : ATmega328のクロック周波数<br>
Fosc : ATmega328のクロック周波数<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  // Set baudrate parameter
  // Set baudrate parameter
  // RoundOff
  // RoundOff
33行目: 33行目:
== レシーバとトランスミッタの有効化 ==
== レシーバとトランスミッタの有効化 ==
レシーバとトランスミッタの有効化は、USARTのコントロールレジスタを設定する。<br>
レシーバとトランスミッタの有効化は、USARTのコントロールレジスタを設定する。<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  // Enable receiver and transmitter
  // Enable receiver and transmitter
  UCSR0B = (1 << RXEN0) | (1 << TXEN0);
  UCSR0B = (1 << RXEN0) | (1 << TXEN0);
60行目: 60行目:
<br>
<br>
上表において、スタートビットは常に1[bit]なので、残りの3項目のビット数を設定する。<br>
上表において、スタートビットは常に1[bit]なので、残りの3項目のビット数を設定する。<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  // Set frame format: 8data, 1stop bit : 8N1
  // Set frame format: 8data, 1stop bit : 8N1
  UCSR0C = (0 << USBS0) | (3 << UCSZ00);
  UCSR0C = (0 << USBS0) | (3 << UCSZ00);
75行目: 75行目:
===== 送信方法 =====
===== 送信方法 =====
送信バッファが空になるまで待機し、UDR0レジスタに1[Byte]分のデータを書き込む。<br>
送信バッファが空になるまで待機し、UDR0レジスタに1[Byte]分のデータを書き込む。<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  void Transmit1Byte(char data)
  void Transmit1Byte(char data)
  {
  {
89行目: 89行目:
===== 受信方法 =====
===== 受信方法 =====
1[Byte]分のデータを受信するまで待機(ポーリング)し、UDR0レジスタを読み取る。<br>
1[Byte]分のデータを受信するまで待機(ポーリング)し、UDR0レジスタを読み取る。<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  char Receive1Byte(void)
  char Receive1Byte(void)
  {
  {

案内メニュー