Чтобы активировать контакты RTS и CTS на Beaglebone, я следовал по нескольким маршрутам, но, к сожалению, я не получил дальше.
1) активация RXD и TXD была проще.Я ввел команду в uEnv.txt:
root@beaglebone:/boot# nano uEnv.txt
cmdline=coherent_pool=1M quiet cape_universal=enable
dtb=am335x-boneblack-emmc-overlay.dtb
, затем я могу напрямую активировать контакты в коде
//UART1
system("config-pin P9.26 uart"); // RXD
system("config-pin P9.24 uart"); // TXD
// UART4
system("config-pin P9.11 uart"); // RXD
system("config-pin P9.13 uart"); // TXD
, если я хочу активировать контакт RTS или CTS с этимКстати,
system("config-pin P9.20 uart"); // CTS
Я получаю сообщение об ошибке
Pin is not modifyable: P9_20 i2c2_sda
Информация:
root@beaglebone:~# config-pin -l P9_20
Pin is not modifyable: P9_20 i2c2_sda
2) Я также использовал второй способ, я прокомментировал командуat uEnv.txt.
# cmdline = coherent_pool = 1M quiet cape_universal = enable
Я перезапустил Beaglebone и приготовил, что:
root@beaglebone:/lib/firmware# cat $SLOTS
0: PF---- -1
1: PF---- -1
2: PF---- -1
3: PF---- -1
4: P-O-L- 0 Override Board Name,00A0,Override Manuf,BB-UART4
5: P-O-L- 1 Override Board Name,00A0,Override Manuf,BB-UART1
6: P-O-L- 2 Override Board Name,00A0,Override Manuf,BB-UART4-RTSCTS
7: P-O-L- 3 Override Board Name,00A0,Override Manuf,BB-UART1-RTSCTS
, в этом случае мой код зависает при функции чтения, которая отвечает на код, как если бы UART не былenabled
3) Я также пытался выполнить команду до
capemgr.enable_partno=BB-UART1,BB-UART4
мой код также зависает в функции чтения.
Может кто-нибудь сказать, что мне делать?