#uart #pic
#uart #рис
Вопрос:
Я снял проект с участием PIC18F252. Код скомпилирован с помощью CCS, и я просто переношу его в MPLAB. PIC имеет 1 модуль UART, его контакты TX и RX — RC6 и RC7. Я не эксперт по микросхемам, но я немного поработал над ними и посмотрел онлайн, прежде чем публиковать этот вопрос.
Исходный код использует
#use rs232(baud=9600,xmit=PIN_B5,rcv=PIN_B4,restart_wdt)
Насколько я вижу, PIC не разрешает переназначение.
Так как же это возможно?
Что CCS делает «под капотом»?
Значит, выводами UART являются RB4 и RB5?
Комментарии:
1. CCS использует свою собственную библиотеку для настройки UART с помощью #use rs232(бод = 9600, xmit= PIN_B5, rcv= PIN_B4, restart_wdt). Это конкретное определение CCS IDE, которое не может быть найдено точно таким же в других. В MPLAB вам приходится делать все это, потому что в MPLAB нет библиотек. Он имеет инструмент под названием MPLAB Code Configurator (MCC), который предоставляет интерфейс для упрощения настройки микросхемы и периферийных устройств и генерации кода периферийного драйвера. Но, к сожалению, он не поддерживает PIC18F252, поскольку это старый чип. Вывод, вам нужно написать код драйвера UART с нуля.
2. Спасибо! Я думаю, мне лучше просто обновить pic. Спасибо.
3. Да, используйте более новые продукты, такие как PIC18 (L) FxxKxx или PIC18 (L) FxxJxx или PIC18 (L) FxxQxx. Они улучшены и поддерживаются MCC.
4. Хорошо, спасибо, кстати, я не нахожу флага, чтобы установить этот поток как «решаемый»…
Ответ №1:
Это:
#use rs232(baud=9600,xmit=PIN_B5,rcv=PIN_B4,restart_wdt)
является расширением компилятора CCS для записи некоторых конфигурационных данных в регистр конфигурации модуля UART (например, скорость передачи данных) и не может использоваться с компилятором xc8. Посмотрите в своем техническом описании, как настроить модуль UART.
Комментарии:
1. Привет, спасибо за ваш вклад. Да, я понял это, но я хотел знать, что CCS делает в своей библиотеке, чтобы иметь возможность использовать другие контакты, отличные от выделенных MSSP. Как упоминал Козмотроник, я думаю, что CCS просто делает то, что делал бы драйвер UART, Но с использованием любых выводов (последовательное переключение выводов и битов и т. Д.). Поэтому, если бы я хотел использовать аналогичную библиотеку в xc8, мне пришлось бы написать драйвер, который может принимать любые выводы и заставлять их действовать какПередача / передача данных, что является проблемой. Так что в моем случае обновление PIC — гораздо более простое и надежное решение.
2. Если CCS использует другие контакты, чем указано в техническом описании (RC4 и RC5), они будут использовать программный UART, а не модуль, входящий в состав контроллера.