|
|
  |
Вопрос про UART, Соответствие передаваемого байта символу |
|
|
|
Oct 8 2013, 13:49
|
Местный
  
Группа: Свой
Сообщений: 454
Регистрация: 13-10-10
Из: Киев
Пользователь №: 60 135

|
Смотрю через терминал CodeVision, передаю 0x5A, приходит 0xAE. Контроллер LPC1758, UART0, 115200, 8 бит уарт, 1 стоп бит, бит чётности отсутствует. Пробовал другие скорости - все так же. Передаю так: Код LPC_UART0->THR = 0x5a; Предварительно настроив UART0 модуль. Когда передаю несколько раз подряд (в цикле) - все так и приходит 0xAE, т.е. приём надежный, но не того, что передали. Могу залезть осциллографом, если это поможет. В чем может быть проблема?
|
|
|
|
|
Oct 8 2013, 15:00
|

Профессионал
    
Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143

|
Цитата(kt368 @ Oct 8 2013, 17:49)  В чем может быть проблема? ну в чем еще, кроме как тактовой. проверяйте, PCCLK и делитель уарта. можете и код выложить
--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
|
|
|
|
|
Oct 10 2013, 10:02
|
Участник

Группа: Свой
Сообщений: 58
Регистрация: 27-03-08
Из: Беларусь, Минск
Пользователь №: 36 275

|
Если программируете контроллер от LPC , у них есть на сайте калькулятор скоростей для UART. lpc2000.baud.rate.calculator
|
|
|
|
|
Oct 10 2013, 10:50
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (RED_BULLok @ Oct 10 2013, 19:02)  Если программируете контроллер от LPC , у них есть на сайте калькулятор скоростей для UART. Нэээ, нэ надо нэчэго скачивать Уже во всех 32-битках (ну наверно во многих) прескаллеры это действительно знаменатели, на которые делится системная частота. Поэтому никаких калькуляторо и хитрых дефайнов Делаете так CODE // Где-то в хидере... const float SYS_CLOCK = 120000000; // Hz const float UART_SPEED = 115200;
// Где-то в инициализации UART_BR = SYS_CLOCK / UART_SPEED; Естественно пример упрощен. Но основной принцип, я думаю, понятен. Так я автомат считаю скорости для uart, ssp, eeprom, i2c и т.п. Иногда встречаются модули, где этот приём не подходит, там уже думать надо.
--------------------
Выбор.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|