|
RS-232, не передает обратно в компьютер |
|
|
|
Oct 13 2010, 21:55
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 2-02-08
Пользователь №: 34 686

|
На дисплее последовательно отображаются непонятные рандомные символы,вводя чтонить в гипертерминале отображается что-то определенное, но не совпадающее с тем что на кнопках... ввожу 1 - отображается 7 и тут же исчезает... но это все работает только когда к контроллеру поделючен провод передачи как только включаю провод на прием - контроллер замирает, на дисплее ничего не отображается... в гипертерминал ничего не отправляется... что это может быть? Код #include <mega48.h>
// Alphanumeric LCD Module functions #include <alcd.h>
// Standard Input/Output functions #include <stdio.h>
#include <delay.h>
#define LCD_CHARS_LINE 16
// Bit definitions from the USART control registers #define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7
#define FRAMING_ERROR (1<<FE) #define PARITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<OVR) #define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC)
// Specify that a new putchar function will be used instead of the one from stdio.h #define _ALTERNATE_PUTCHAR_
// Specify the output types #define USART0 0 #define LCD 2
// This variable will specify to which peripheral the output of putchar will be directed unsigned char poutput;
void putchar(char c) { switch (poutput) { case USART0: // the output will be directed to USART0 while ((UCSR0A & DATA_REGISTER_EMPTY)==0); UDR0=c; break;
case LCD: // the output will be directed to the LCD lcd_putchar©; }; }
void main(void) {
char k;
// Crystal Oscillator division factor: 1 #pragma optsize- CLKPR=0x80; CLKPR=0x00; #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif
// USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART0 Mode: Asynchronous // USART Baud Rate: 9600 UCSR0A=0x00; UCSR0B=0x18; UCSR0C=0x06; UBRR0H=0x00; UBRR0L=0x33;
lcd_init(16); while (1) { poutput=USART0; //printf("This is a test of USART%u.\r",0); k=getchar(); putchar(k); //UDR0=3; delay_ms(100); poutput=LCD; lcd_clear(); printf("-- %c --\n%u characters/line.",k,LCD_CHARS_LINE); } }
Сообщение отредактировал AnKing - Oct 13 2010, 21:55
|
|
|
|
|
 |
Ответов
|
Oct 19 2010, 04:39
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 2-02-08
Пользователь №: 34 686

|
Схемы нету но есть фотка  Нижний конец провода идет в комп
|
|
|
|
|
Oct 19 2010, 20:59
|
Местный
  
Группа: Участник
Сообщений: 206
Регистрация: 23-12-06
Из: Старых Васюков
Пользователь №: 23 821

|
Цитата(AnKing @ Oct 19 2010, 08:39)  Схемы нету но есть фотка ... Нижний конец провода идет в комп Если на верхнем разъёме D-SUB "вилка" (похоже  ), то этот разъём, IMHO, запаян "зеркально". То есть провод GND, который должен быть запаян на 5-й выв. разъёма, запаян на 1-й выв., а тот, который должен быть запаян на 2-й вывод, запаян на 4-й. (Правильно, в P.S.) P.S. Не, всё ещё хуже. Кабель, судя по фотографии, должен быть "прямой". То есть:2-й выв. нижнего разъёма (на фотографии, коричневый провод) должен соединиться со 2-м выв. верхнего разъёма, а не с 3-м. 3-й(красный) - с 3-м, а не с 4-м. 5-й(жёлтый) - с 5-м, а не с 1-м.
Сообщение отредактировал Mike18 - Oct 19 2010, 21:33
--------------------
Время - материя тонкая и неточная...
|
|
|
|
Сообщений в этой теме
AnKing RS-232 Oct 13 2010, 21:55 XVR Как минимум #define _ALTERNATE_PUTCHAR_ должно сто... Oct 14 2010, 05:02 Палыч Цитата(AnKing @ Oct 14 2010, 01:55) что э... Oct 14 2010, 08:13 AnKing Цитата(XVR @ Oct 14 2010, 09:02) Как мини... Oct 14 2010, 14:38 Палыч Цитата(AnKing @ Oct 14 2010, 18:38) об об... Oct 14 2010, 15:03 AnKing перепроверил все провода... все подключено, нигде ... Oct 14 2010, 15:46 XVR Оторвите MAX232 от контролера и замкните оторванны... Oct 15 2010, 05:05 Александр77 Нескромный вопрос, а чем тактируете МК?
Применяйте... Oct 15 2010, 05:24 AnKing замкнул max со стороны контроллера... назад ничего... Oct 15 2010, 05:58 XVR Цитата(AnKing @ Oct 15 2010, 09:58) замкн... Oct 15 2010, 12:11 Deka При замыкании до макса гипертерминал ведь показыва... Oct 15 2010, 09:46 AnKing ЦитатаПрименяйте ВСЕГДА внешний генератор/резонато... Oct 15 2010, 19:07 Deka 1. Проверить обвязку и подключение драйвера RS-232... Oct 18 2010, 05:08 AnKing Цитата(Deka @ Oct 18 2010, 09:08) 1. Пров... Oct 18 2010, 19:34 XVR Проверьте каким RS232 кабелем подключена ваша плат... Oct 18 2010, 08:05 XVR Дайте схему, как подключали драйвер Oct 18 2010, 19:53  AnKing Цитата(Mike18 @ Oct 20 2010, 00:59) Если ... Oct 19 2010, 21:40 XVR По фотке мало что видно, но попробуйте поменять ме... Oct 19 2010, 06:30 AnKing flow control отключен
провода местами поменял, теп... Oct 19 2010, 15:06 XVR Для вашего stk48:
1) Провода к PC должны идти один... Oct 19 2010, 16:53 AnKing Цитата(XVR @ Oct 19 2010, 20:53) Для ваше... Oct 19 2010, 18:00 XVR Странно это. Осцилограф есть? Или хотя бы тестер? ... Oct 19 2010, 20:43 AnKing Переписал все в AVR Studio
Когда отправляю что-ни... Oct 20 2010, 17:03 XVR Неправильно выставлен делитель для USART (UBRR0). ... Oct 20 2010, 17:40 AnKing Цитата(XVR @ Oct 20 2010, 21:40) Неправил... Oct 20 2010, 18:59  rezident Цитата(AnKing @ Oct 21 2010, 00:59) на st... Oct 20 2010, 19:04 AnKing В даташите при такой частоте и скорости 115200
UBR... Oct 20 2010, 19:28 XVR Цитататеперь тока есть вопрос что такое
"... Oct 20 2010, 20:43
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|