Встроенный Linux Uart для использования в качестве RS485Linux

Ответить
Anonymous
 Встроенный Linux Uart для использования в качестве RS485

Сообщение Anonymous »

Я работал над несколькими проектами встроенного Linux за последние 5 лет, но есть небольшая проблема, когда я использую UART.
Я использую STM32MP13F с MyIR -платой. UART подключен к половине дуплексного RS485. Поэтому мне нужно установить/сбросить PIN -код до и после написания данных UART TX. Когда я пишу на uart, как
ssize_t byteswritten = write (uartfd_, data, длина);
мне нужно проверить, ясен ли буфер. Я попробовал это через < /p>
tcdrain(uartFd_); // did not worked
// also below flags check did not worked
if(ioctl(uartFd_, TIOCSERGETLSR, &status) == -1){
retVal = true;
}
if(status & TIOCSER_TEMT){
retVal = true;
}
< /code>
Я также попытался получить доступ к UART из прямой памяти, но он не работал.
На последнем случае я должен положить задержку
seleess(Length-1)*86.8056); // 86,80 рассчитывается для 115200 Baudrate.
Чтобы проверить, был ли TX завершен до установки RE PIN. Отвечая система отвечает мгновенно, когда она получает запрос, поэтому мы не можем позволить себе эту задержку. Может создавать модуль ядра, который использует UART в качестве RS485, может помочь, но все еще не уверен в этом.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... d-as-rs485
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»