Устройство является сканером. Я знаю, что uart5 настроен в файле dtsi, а в пользовательском пространстве он указан в / dev / ttymxc4. Из пользовательского пространства я понимаю, что могу манипулировать устройством с помощью
fd = open("/dev/ttymxc5", O_RDWR|O_NOCTTY|O_NONBLOCK);
if (fd < 0)
{
fprintf (stderr,"Open error on %s: %s\n", SCANNER_UART, strerror(errno));
return nullptr;
}
И используйте termios для установки всех настроек, таких как скорость передачи данных, запись данных с помощью вызова записи и т. Д.
Я хочу абстрагироваться от многих команд в sysfs. Я настроил «драйвер UART», как это:
result = uart_register_driver(&scanner_reg);
if (result)
return result;
result = uart_add_one_port(&scanner_reg, &scanner_port);
if (result)
uart_unregister_driver(&scanner_reg);
И я использую линии gpio для включения системы и некоторых других вещей. Однако на схеме я не вижу линий gpio для этих вещей.
UART5_CTS_HOST_SCAN_3_3V
UART5_RTS_HOST_SCAN_3_3V
UART5_RxD_HOST_SCAN_3_3V
UART5_TxD_HOST_SCAN_3_3V
Я просто не уверен, как открыть / записать / прочитать данные с устройства. Я знаю о sys_open и подобных вызовах, однако я знаю, что это не "правильный" способ сделать это; Я не хочу проходить через пространство пользователя.
Итак, в целом, как мне
- «выбрать» устройство / dev / ttymxc4 в моем модуле и
- открыть, установить скорость передачи и считывать / записывать данные на устройство?
Спасибо! Пожалуйста помоги! Впервые в жизни, UART, я имел дело с i2c в прошлом, и он казался менее сложным.