Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
3 / 3 / 4
Регистрация: 04.12.2015
Сообщений: 54
1

Atmega8 проблема с UART

13.06.2020, 12:17. Просмотров 200. Ответов 4

Здравствуйте, столкнулся с проблемой отправки данных на ПК по интерфейсу UART, суть проблемы в том что в терминал приходят не те символы.

вот код, инизиализацию и отправку брал из даташита
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#ifndef F_CPU
#define F_CPU 11059200UL    //  рабочая частота
#endif
 
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <stdio.h>
#include <stdlib.h>
 
 
void USART_Init( unsigned int ubrr)
{
    /* Set baud rate */
    UBRRH = (unsigned char)(ubrr>>8);
    UBRRL = (unsigned char)ubrr;
    /* Enable receiver and transmitter */
    UCSRB = (1<<RXEN)|(1<<TXEN);
    /* Set frame format: 8data, 2stop bit */
    UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}
 
void USART_Transmit( unsigned char data )
{
    /* Wait for empty transmit buffer */
    while ( !( UCSRA & (1<<UDRE)) )
    ;
    /* Put data into buffer, sends the data */
    UDR = data;
}
 
int main(void)
{
    USART_Init(71);//9600
 
    while (1) 
    {
        
            USART_Transmit('O');
            USART_Transmit('k');
            USART_Transmit('!');
            USART_Transmit(0x0d);
            USART_Transmit(0x0a);
            _delay_ms(1000);
 
    }
}
Есть кварц на 11.0592 MHz, выставил Fuses, как указанно в даташите
CKSEL0 - 1

Добавлено через 7 минут
Случайно отправил, не успел отредактировать
Есть кварц на 11.0592 MHz, выставил Fuses, как указанно в даташите
CKSEL0 - 1
CKSEL1 - 1
CKSEL2 - 1
CKSEL3 - 1
CKOPT - 0

Вот что приходит в терминал


Использую UART->USB

Мб кто подскажет, где проблема?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2020, 12:17
Ответы с готовыми решениями:

DS18B20->Atmega8->UART
Всем привет! Я ломаю голову над тем, как передавать температуру по UART, а именно как...

Передача по UART (ATMega8)
Доброго времени суток! Есть необходимость обработать передачу данных с помощью USORT через COM...

Работа с UART в МК ATMega8
Не хочет работать передача данных. Подключаю к ножкам PD0 и PD1 через USB/UART TTL конвертор...

UART Atmega8 Terminal
Всем доброго времени суток! У меня есть код : #define F_CPU 8000000UL #include &lt;avr/io.h&gt;...

4
3 / 3 / 4
Регистрация: 04.12.2015
Сообщений: 54
13.06.2020, 12:20  [ТС] 2
Скриншоты
0
Миниатюры
Atmega8 проблема с UART   Atmega8 проблема с UART   Atmega8 проблема с UART  

1122 / 482 / 205
Регистрация: 11.10.2018
Сообщений: 2,717
13.06.2020, 13:30 3
2 стоп-бита. - Может быть в этом косяк? Попробуйте 1 стоп бит.
0
3 / 3 / 4
Регистрация: 04.12.2015
Сообщений: 54
13.06.2020, 16:35  [ТС] 4
Очень странно вышло, но когда поставил в Fuses SUT1 - 0 и SUT0 - 0, все заработало,все чисто, не понимаю почему, ведь в паспорте указано что они отвечают за скорость старта кварца.... хм
0
1122 / 482 / 205
Регистрация: 11.10.2018
Сообщений: 2,717
13.06.2020, 16:51 5
SUT - это Startup Time, время запуска микроконтроллера после включения, они там вместе конфигурируются SUT и СKSEL.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.06.2020, 16:51

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Работа с UART ATMega8
к примеру надо отправить число 21367 в ком порт с атмеги8 чтобы потом на компе программой считать....

AtMega8, внешняя EEPROM и UART
Всем привет. Нумбский вопрос, я новичок. Думаю над новой разработкой. Нужно послушать шину...

Приём данных по UART Atmega8
Доброго времени суток! Продолжаю постигать азы микроконтроллеров. В прошлой теме задавал, как уже...

Сигнализация: UART на AtMega16 работает, на AtMega8 нет
Здравствуйте. Изучение микроконтроллеров начал с знаменитой сигнализации на AtTiny2313. Но там...

Передать нажатия c TOUCH SCREEN по UART (ATMega8)
Всем привет. Необходимо реализовать возможность получения координат касания и передать по...

ATMega8. Вывод данных с UART на LCD дисплей HD44780
Помогите разобраться с приемом данных с UART и выводом их на LCD-дисплей ...многое перепробовал, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.