lbed/04-PCとつなぐ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[lbed]]
#contents
2013/07/20からのアクセス回数 &counter;
** あると便利シリアルポート [#k15a8a54]
lbedは、LPCXpresso IDEのソースレベルのデバッグができるの...
シリアルで接続する機会は少ないとは思うのですが、はやりあ...
*** 初心者もベテランもArduino IDEのシリアルモニター[#l872...
やはり、Arduinoは良く出来ており、組み込み機器とPCをつない...
シリアルモニターが便利です。
PCから文字を入力する場合には、トップのテキストフィールド...
組み込み機器からの文字列は、その下のテキストエリアに表示...
&ref(SerialMonitor.png);
** テストプログラム [#j282de55]
シリアル通信を行うクラスは、Serialで残念ながらmbedのよう...
でした。
そこで、ArudinoのSerialを手本に作成しました。
Serialのインスタンスを生成後、baudメソッドでボーレイトを...
最初にHelloと表示し、文字入力があれば+1した文字コードを...
確認しました。((文字出力がちょっと不安定です。))
#pre{{
#include<cr_section_macros.h>
#include<NXP/crp.h>
__CRP extern const unsigned int CRP_WORD = CRP_NO_CRP;
#include"lbed.h"
DigitalOut myled( LED1);
int main(void) {
wait_init();
Serial pc(p9, p10);
pc.baud(9600);
pc.println("Hello");
while (1) {
char c = pc.read();
pc.write(c + 1);
myled = !myled;
}
return 0;
}
}}
*** 動作確認 [#j7aad11e]
MyARMワークベンチにUSBシリアル変換を差して、PCに接続しま...
&ref(SerialSetting.png);
*** Serialの実装 [#had9d15b]
Serialは、トラ技の2012/10の特集を参考に作成しましたが、出...
#pre{{
#include "Serial.h"
#include "PinNames.h"
#include "LPC11xx.h"
Serial::Serial()
: _tx(-1)
, _rx(-1)
{
setup(P1_6, P1_7, "default");
}
Serial::Serial(PinName tx, PinName rx, const char *name)
: _tx(-1)
, _rx(-1)
{
setup(tx, rx, name);
}
void Serial::setup(PinName tx, PinName rx, const char *na...
{
_tx = tx;
_rx = rx;
_available = false;
LPC_IOCON->PIO1_6 |= 0x01; ...
LPC_IOCON->PIO1_7 |= 0x01; ...
}
void Serial::baud(unsigned int baudrate) {
unsigned int DL;
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<12); ...
LPC_SYSCON->UARTCLKDIV = 0x01; ...
DL = (SystemCoreClock * LPC_SYSCON->SYSAHBCLKDIV) ...
/ (16 * baudrate * LPC_SYSCON->UARTCLKDIV);
LPC_UART->LCR |= (1<<7); ...
LPC_UART->DLM = DL / 256; ...
LPC_UART->DLL = DL % 256; ...
LPC_UART->LCR &= ~(1<<7); ...
LPC_UART->LCR = 0x03; ...
LPC_UART->FCR = 0x07; ...
_available = true; ...
}
void Serial::begin(unsigned int baudrate) {
baud(baudrate);
}
int Serial::write(const char c) {
while (!(LPC_UART->LSR & (1<<5))) ...
continue;
LPC_UART->THR = c; ...
return 1;
}
int Serial::read() {
while (!(LPC_UART->LSR & 0x01)) ...
continue;
return LPC_UART->RBR; ...
}
int Serial::available() {
return _available ? 1 : 0;
}
}}
** コメント [#c81be729]
#vote(おもしろかった,そうでもない,わかりずらい)
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
終了行:
[[lbed]]
#contents
2013/07/20からのアクセス回数 &counter;
** あると便利シリアルポート [#k15a8a54]
lbedは、LPCXpresso IDEのソースレベルのデバッグができるの...
シリアルで接続する機会は少ないとは思うのですが、はやりあ...
*** 初心者もベテランもArduino IDEのシリアルモニター[#l872...
やはり、Arduinoは良く出来ており、組み込み機器とPCをつない...
シリアルモニターが便利です。
PCから文字を入力する場合には、トップのテキストフィールド...
組み込み機器からの文字列は、その下のテキストエリアに表示...
&ref(SerialMonitor.png);
** テストプログラム [#j282de55]
シリアル通信を行うクラスは、Serialで残念ながらmbedのよう...
でした。
そこで、ArudinoのSerialを手本に作成しました。
Serialのインスタンスを生成後、baudメソッドでボーレイトを...
最初にHelloと表示し、文字入力があれば+1した文字コードを...
確認しました。((文字出力がちょっと不安定です。))
#pre{{
#include<cr_section_macros.h>
#include<NXP/crp.h>
__CRP extern const unsigned int CRP_WORD = CRP_NO_CRP;
#include"lbed.h"
DigitalOut myled( LED1);
int main(void) {
wait_init();
Serial pc(p9, p10);
pc.baud(9600);
pc.println("Hello");
while (1) {
char c = pc.read();
pc.write(c + 1);
myled = !myled;
}
return 0;
}
}}
*** 動作確認 [#j7aad11e]
MyARMワークベンチにUSBシリアル変換を差して、PCに接続しま...
&ref(SerialSetting.png);
*** Serialの実装 [#had9d15b]
Serialは、トラ技の2012/10の特集を参考に作成しましたが、出...
#pre{{
#include "Serial.h"
#include "PinNames.h"
#include "LPC11xx.h"
Serial::Serial()
: _tx(-1)
, _rx(-1)
{
setup(P1_6, P1_7, "default");
}
Serial::Serial(PinName tx, PinName rx, const char *name)
: _tx(-1)
, _rx(-1)
{
setup(tx, rx, name);
}
void Serial::setup(PinName tx, PinName rx, const char *na...
{
_tx = tx;
_rx = rx;
_available = false;
LPC_IOCON->PIO1_6 |= 0x01; ...
LPC_IOCON->PIO1_7 |= 0x01; ...
}
void Serial::baud(unsigned int baudrate) {
unsigned int DL;
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<12); ...
LPC_SYSCON->UARTCLKDIV = 0x01; ...
DL = (SystemCoreClock * LPC_SYSCON->SYSAHBCLKDIV) ...
/ (16 * baudrate * LPC_SYSCON->UARTCLKDIV);
LPC_UART->LCR |= (1<<7); ...
LPC_UART->DLM = DL / 256; ...
LPC_UART->DLL = DL % 256; ...
LPC_UART->LCR &= ~(1<<7); ...
LPC_UART->LCR = 0x03; ...
LPC_UART->FCR = 0x07; ...
_available = true; ...
}
void Serial::begin(unsigned int baudrate) {
baud(baudrate);
}
int Serial::write(const char c) {
while (!(LPC_UART->LSR & (1<<5))) ...
continue;
LPC_UART->THR = c; ...
return 1;
}
int Serial::read() {
while (!(LPC_UART->LSR & 0x01)) ...
continue;
return LPC_UART->RBR; ...
}
int Serial::available() {
return _available ? 1 : 0;
}
}}
** コメント [#c81be729]
#vote(おもしろかった,そうでもない,わかりずらい)
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
ページ名:
SmartDoc