Home Contact Sitemap

洛星中学高等学校 ロボット研究部・同好会 開発日誌

    アーカイブ
    ブログロール
    • happybusy
    Amazonサーチ
«

ATxmegaのUART通信について。

どうもこんにちは。Shunです。

今回はxmegaのUART通信のソースを公開していきたいと思います。

UART通信って何?っていうひとはggrks Google大先生に聞いてください。

テスト環境はUSARTE1でATxmega128a1uの内部発振子32MHzでボーレート9600bpsです。

ではではコード説明に移りましょう。


void init_usart(void){
PORTE.DIRSET=PIN7_bm;//PORTE7をOUT設定
PORTE.DIRCLR=PIN6_bm;//PORTE6をIN設定
USARTE1_BAUDCTRLA =207 ;//USARTE1のボーレート設定
USARTE1_BAUDCTRLB =0x00 ;//USARTE1のボーレート設定
USARTE1.CTRLC = (USARTE1.CTRLC & ~USART_CHSIZE_gm) | USART_CHSIZE_8BIT_gc;//データbit数設定
USARTE1.CTRLB = (USART_RXEN_bm | USART_TXEN_bm);//TXD,RXD許可
}


以上がUSARTのイニシャライジングです。

特に何もいうところはありませんね。

ボーレート設定はデータシートを読んでください。

以下、データ送信です。


void usart_send(char c)
{

while( !(USARTE1_STATUS & USART_DREIF_bm) ); //Wait until DATA buffer is empty

USARTE1_DATA = c;

}
void usart_string(char *text)//文字データ送信
{
while(*text)
{
usart_send(*text++);
}
}

void usart_putdec(uint16_t data){//4桁数列送信
usart_send(data/1000 + ‘0’);
data %= 1000;
usart_send(data/100 + ‘0’);
data %= 100;
usart_send(data/10 + ‘0’);
data %= 10;
usart_send(data + ‘0’);
}


特にいうことなしですね。

まあ。こんな感じでしょう。

送信完了割り込み等はしておりません。

将来的にできるようになりたいなと。。。

今回は以上ですね。

今はI2CとSPIに苦戦中です。

最後にソースをまとめたものを。


void init_usart(void){
PORTE.DIRSET=PIN7_bm;//PORTE7をOUT設定
PORTE.DIRCLR=PIN6_bm;//PORTE6をIN設定
USARTE1_BAUDCTRLA =207 ;//USARTE1のボーレート設定
USARTE1_BAUDCTRLB =0x00 ;//USARTE1のボーレート設定
USARTE1.CTRLC = (USARTE1.CTRLC & ~USART_CHSIZE_gm) | USART_CHSIZE_8BIT_gc;//データbit数設定
USARTE1.CTRLB = (USART_RXEN_bm | USART_TXEN_bm);//TXD,RXD許可
}

void usart_send(char c)
{

while( !(USARTE1_STATUS & USART_DREIF_bm) ); //Wait until DATA buffer is empty

USARTE1_DATA = c;

}
void usart_string(char *text)//文字データ送信
{
while(*text)
{
usart_send(*text++);
}
}

void usart_putdec(uint16_t data){//4桁数列送信
usart_send(data/1000 + ‘0’);
data %= 1000;
usart_send(data/100 + ‘0’);
data %= 100;
usart_send(data/10 + ‘0’);
data %= 10;
usart_send(data + ‘0’);
}

 

By 63rd Aquila . 2017-06-07 . 5:03 PM
コメントお待ちしております! Filed under: ATxmega関連,未分類 — タグ: ,

コメントはありません »

コメントお待ちしております!

RSS feed for comments on this post. TrackBack URL

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>