Не знаю: Смеяться или плакать
Неделю пытал встроенные аппаратные UART 1 и 2, а именно PRINT средствами самого БАСКОМ...
Уже и дизассемблер применил, и регистры уже скоро буду без справочников читать в hex ))))
Всё оказалось куда веселее ))) Логики не вижу. Но факт остаётся!А заработало тогда, когда я включил резисторы pull-up! )))PS: Всё еще интереснее: Кривой перевод ОДНОГО СЛОВА в даташите у китайцев. Надо было перевести как "pin", а написано "input"
Чтобы не включать подтяжку, надо ПРАВИЛЬНО инициализировать порт
А именно: Если вывод МК применяем НЕ как аналоговый вход, Т.Е, как цифровой, то в нужном бите УСТАНОВИТЬ 1
Работают ОБА UART на нужных мне ногах
Но все на одной скорости!
После инициализации (ручками + Bascom) надо что-то записать в буфер UART1 и UART2 - без этой магии не хочет!
$regfile = "STC_8H.DAT" ' STC registers list $crystal = 11059200 ' CPU clock frequence My_led Alias P3.5 P1ie = &B1111_1111 ' 1: Enable digital signal P1pu = &B0000_0000 ' 1: pull-up resistor P1m1 = &B_0000_0000 : P1m0 = &B_1010_0010 ' Push-pull output mode P3ie = &B1111_1111 ' 1: Enable digital signal P3pu = &B0000_0000 ' 1: pull-up resistor P3m1 = &B0000_0000 : P3m0 = &B_1000_0010 ' Push-pull output mode Scon = &H50 ' 1010000 8 bits and variable baudrate S2con = &H10 ' 0010000 T2l = &HE8 ' Initial value Timer2 115200 T2h = &HFF 'Auxr = &H14 '0001_0100 UART1 Auxr = &H15 '0001_0101 UART 1 + 2 P_sw1 = &H00 'RXD/P3.0, TXD/P3.1 'P_sw1 = &H40 'RXD_2/P3.6, TXD_2/P3.7 'P_sw1 = &H80 'RXD_3/P1.6, TXD_3/P1.7 'P_sw1 = &HC0 'Rxd_4/P4.3, Txd_4/P4.4 P_sw2 = &H00 'RXD2/P1.0, TXD2/P1.1 'P_sw2 = &H01 'RXD2_2/P4.6, TXD2_2/P4.7 Dim Temp As Byte Open "COM2:" For Binary As #1 ' Откроем второй UART Sbuf = 0 ' 1 Зачем - не знаю. S2buf = 0 ' 2 Но без этого не работает Do If My_led = 1 Then ' Мигаем My_led = 0 Else My_led = 1 End If Print "1 Hello! Привет! " ; Temp Print #1 , "2 Hello! Привет! " ; Temp Print "1 1234 " ; Chr(temp) Print #1 , "2 1234 " ; Chr(temp) Print "1 asdfg" Print #1 , "2 asdfg" Waitms 150 Incr Temp Loop Close #1
Отредактировано Александр Д. (2024-05-02 20:46:04)