ふむ、どうもシリアル設定の8bit以外がサポートされていないようだが? うまく動かず悩むのをTerminalで見るとエラーはいてるし
++ MbedOS Error Info ++
Error Status: 0x80FF0144 Code: 324 Module: 255
Error Message: Assertion failed: data_bits == 8
Location: 0x5B71
File: /extras/mbed-os.lib/targets/TARGET_Freescale/TARGET_KLXX/TARGET_KL25Z/serial_api.c+168
Error Value: 0x0
For more info, visit: https://mbed.com/s/error?error=0x80FF0144&tgt=KL25Z
-- MbedOS Error Info --
serial_api.cを探して該当のところを見てみたら・・
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
MBED_ASSERT((stop_bits == 1) || (stop_bits == 2));
MBED_ASSERT((parity == ParityNone) || (parity == ParityOdd) || (parity == ParityEven));
MBED_ASSERT(data_bits == 8); // TODO: Support other number of data bits (also in the write method!)
やることリストと思われるTODOがあるけど・・・
ParityにNone以外を設定すると、bit数を増加するような記載もあるが
uint8_t parity_enable, parity_select;
switch (parity) {
case ParityNone: parity_enable = 0; parity_select = 0; break;
case ParityOdd : parity_enable = 1; parity_select = 1; data_bits++; break;
case ParityEven: parity_enable = 1; parity_select = 0; data_bits++; break;
default:
break;
}
だめってことか。
いや、動いてるっぽいな
Databits=8にしてParity=Even設定で、プロアナで見ると、最上位ビットがEvenParityビットになっていて且つ8bitデータで動いているっぽい
いいのか、これ?
コメントを追加