Renesas Rulz - Japan
  • User
    Join or Sign In
  • Site
  • Search Japan.RenesasRulz.com
  • User
  • Renesas Rulz
  • FAQ
  • パートナー
  • 半導体セミナ
  • eラーニング
  • ヘルプ
  • More
  • Cancel
  • かふぇルネ
  • がじぇるね
  • Groups
  • English Community
  • More
  • Cancel
がじぇっとるねさすコミュニティ
がじぇっとるねさすコミュニティ
GR-SAKURA フォーラム GR-SAKURAの Serial2.end()でポートが解放されない…
  • Forums
  • Blog
  • Files
  • がじぇっとるねさす ゆーざー会 - Wiki
  • Tags
  • More
  • Cancel
  • New

 

 チャレンジプログラム

 GR-SAKURA

 GR-KURUMI

 SNShield

 Web Compiler

 IDE for GR

 その他

 

 作り方使い方資料

 イベント関連

 作品記事

 体験記事

 その他

 

 ライブラリ

 ツール

 その他

  • Date sam
    sam
  • Date 2018/6/18 21:37
  • Replies 5 replies
  • Subscribers 282 subscribers
  • Views 5250 views
Options
  • Share
  • More
  • Cancel
Related Tags
  • Ehternet
  • ethernet
  • gr-sakura
  • GR-SAKURA GR-KURUMI I2C
  • gr-sakura rtc
  • GR-SAKURA SDMMC
  • GR-SAKURA 液晶 aitendo
  • i2c
  • lcd
  • mruby
  • sd_card
  • sdmmc
  • SDカード
  • serial
  • spi
  • udp
  • USB仮想シリアル
  • webコンパイラ
  • Windows8 serial com driver
  • がじぇっとルネサス
  • がじぇるね
  • シリアル
  • タイマ割込み
  • ネットワーク
  • ライブラリ
Related

GR-SAKURAの Serial2.end()でポートが解放されない。

受信ポートはシリアル受信して送信に割り付けられているポートで応答を接点出力したいのですが
変則的ですが、他にポートが余っていないので・・。
シリアル受信してからSerial2.end();pinMode(6,OUTPUT);digitalWrite(6,LOW);で
どうもポートが解放されない様です。この後、シリアル受信はしなくなるのでシリアル割込は
止まっているようなんですが・・。
 

  • Cancel
  • Reply
  • Okamiya Yuuki
    Okamiya Yuuki
    • 0
    • 2018/6/20 0:55
    すみません、深く調べられていないのですが、取り急ぎ以下のようにBCLRを挟んで試してみていただけますでしょうか。
    Serial2.begin(9600);
    Serial2.end();
    BCLR(portModeRegister(digitalPinToPort(6)), digitalPinToBit(6));
    pinMode(6, OUTPUT);
  • sam
    sam
    • 0
    • 2018/6/20 2:52
    早々の対応ありがとうございます。恐るべし、がじぇるねフォーラムですね。
    BCLRを挟んでみましたが状況変わらずでした。因みにその後、Serial2.begin
    すると、また受信する様になります。
  • Okamiya Yuuki
    Okamiya Yuuki
    • 0
    • 2018/6/20 21:26

    In reply to sam:

    あら、そうですか。こちらでSerial2.end後のLチカができたのですが、もう一度確認してみます。
  • Okamiya Yuuki
    Okamiya Yuuki
    • 0
    • 2018/6/20 23:54

    In reply to Okamiya Yuuki:

    もう一度試してみました。結果としてはSerial2.endをせずともシリアル受信しながらポートHIGH/LOWできるようです。

    試した環境はIDE for GR V1.03です。ハードウェアは以下の通りで6ピンにLED、7ピンにFTDIのTXをつなげてます。

     

    void setup() {
    // put your setup code here, to run once:
    Serial2.begin(9600);
    BCLR(portModeRegister(digitalPinToPort(6)), digitalPinToBit(6));
    pinMode(6, OUTPUT);
    digitalWrite(6, LOW);

    }

    void loop() {
    // put your main code here, to run repeatedly:
    if(Serial2.available()){
    Serial2.read(); //dummy
    digitalWrite(6, HIGH);
    delay(30);
    digitalWrite(6, LOW);
    }
    }

  • sam
    sam
    • 0
    • 2018/6/22 2:36
    検証対応、本当に感謝します。
    結論・・うまく行きました!
    (1) Serial2.beginをしないとテキスト出力ができなくなる。
    (2) Serial2.beginをするとIOができなくなる。
    (3) Serial2.beginするとpinModeしてもIOができなくなる。
    (4) 再度BCLRが必要。
    (5) pinModeとSerial2.endは不要。

    上記(1)-(5)を纏めて以下で動確がとれました。
    ありがとうございました。

    void setup()
    {
    Serial2.begin(9600);
    BCLR(portModeRegister(digitalPinToPort(6)), digitalPinToBit(6));
    digitalWrite(6, LOW);
    }

    void loop()
    {
    if(Serial2.available())
    {
    Serial2.read();
    BCLR(portModeRegister(digitalPinToPort(6)), digitalPinToBit(6));
    for (int i=0;i<10;i++)
    {
    digitalWrite(6, HIGH);
    delay(200);
    digitalWrite(6, LOW);
    delay(200);
    }
    Serial2.begin(9600);
    }
サイト使用条件
プライバシーポリシー
お問い合わせ
© 2010-2019 Renesas Electronics Corporation. All rights reserved.