UART и attiny 2313 CodeVisionAVR
- Сообщения: 75
- Зарегистрирован: Пн ноя 21, 2011 13:03:33
Помогите разобраться с UARTом, не могу понять что куда пихать, вроде все регистр настроил, частоту выставил, но ни чего не получается. Пишу на Си в codevisionavr, хочу подключить DFplayer mp3. Помогите разобраться. А то на работе надо сделать один проект, а разобраться не могу.
- Реклама
- Сообщения: 804
- Зарегистрирован: Чт мар 12, 2009 16:31:05
Настройка UART производится в генераторе CVAVR
А дальше открываем http://www.atmel.com/images/doc2543.pdf
на стр. 118 и смотрим как передавать инфу, и видим
То есть, хочешь передать 0х23, пишешь
Там-же, чуть ниже на стр.121 написано как принимать инфу.
Да, описание функции должно быть в теле программы.
А дальше открываем http://www.atmel.com/images/doc2543.pdf
на стр. 118 и смотрим как передавать инфу, и видим
Код: Выделить всё
void USART_Transmit( unsigned char data )
{
/* Wait for empty transmit buffer */
while ( !( UCSRA & (1<<UDRE)) )
;
/* Put data into buffer, sends the data */
UDR = data;
}То есть, хочешь передать 0х23, пишешь
Код: Выделить всё
USART_Transmit( 0x23 );Там-же, чуть ниже на стр.121 написано как принимать инфу.
Да, описание функции должно быть в теле программы.
- Сообщения: 75
- Зарегистрирован: Пн ноя 21, 2011 13:03:33
Вот так же писал, но в виртуальном терминале какие то треугольники
Код: Выделить всё
void USART_Transmit( unsigned char data )
{
if ( UCSRA & (1<<UDRE))
{UDR = data;}
}то есть разницу между if и while вы не видите?aleksei18rus писал(а):Вот так же писал
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 75
- Зарегистрирован: Пн ноя 21, 2011 13:03:33
- Реклама
- Сообщения: 804
- Зарегистрирован: Чт мар 12, 2009 16:31:05
- Сообщения: 75
- Зарегистрирован: Пн ноя 21, 2011 13:03:33
[quote="Vov123"]
написал так а в терминале протеуса все равно перевернутые треугольники
написал так а в терминале протеуса все равно перевернутые треугольники
Код: Выделить всё
#include <io.h>
#include <string.h>
void USART_Transmit( unsigned char data )
{
while ( !( UCSRA & (1<<UDRE)) )
{UDR = data;}
}
void main (void)
{ UCSRB=0x16;
UBRR=0x17;
while (1)
{USART_Transmit( 0x23 );
}
}- Сообщения: 804
- Зарегистрирован: Чт мар 12, 2009 16:31:05
В окне терминала протеуса, правой кнопкой мыши, поставить галку "Hex Dysplay Mode"
Если подцепить библу stdio.h , можно пользоваться функциями putchar(); - для отправки одиночного символа и puts(); - массива
Если подцепить библу stdio.h , можно пользоваться функциями putchar(); - для отправки одиночного символа и puts(); - массива


