• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP8266 + AVR

pashsh

New member
Здравствуйте!
Пытаюсь всё передать хоть что-то по UART от esp01s к attiny2313, всё тщетно.
Если посылать сообщения на attiny2313 через USB-TTL преобразователь с компьютера, то всё хорошо работает, но подружить мк и esp не получается.
В чём проблема?

Прошивка esp8266:
Код:
uart.setup(0,9600,8,0,1)
tmr.alarm(0, 2000, 0, function()
       uart.write(0, "A", 19)
    end)
Код:
#include <tiny2313.h>
#include <alcd.h>
#include <stdio.h>


#define RX_BUFFER_SIZE 8
char rx_buffer[RX_BUFFER_SIZE];

unsigned char rx_wr_index=0,rx_rd_index=0;
unsigned char rx_counter=0;


bit rx_buffer_overflow;

interrupt [USART_RXC] void usart_rx_isr(void)
{
    char status,data;
    status=UCSRA;
    data=UDR;
    if ((status & ((1<<FE) | (1<<UPE) | (1<<DOR)))==0) {
        rx_buffer[rx_wr_index++]=data;
        if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
        if (++rx_counter == RX_BUFFER_SIZE) {
            rx_counter=0;
            rx_buffer_overflow=1;
         }
    }
}


char getChar(void)
{
    char data;
    while (rx_counter==0);
    data=rx_buffer[rx_rd_index++];
    if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
    --rx_counter;
    return data;
}

void main(void)
{
int k;
char data;

DDRB = 0x00;
PORTB = 0x00;

USICR = 0x00;

UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);
UCSRB=(1<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
UCSRC=(0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
UBRRH=0x00;
UBRRL=0x33;

lcd_init(16);

#asm("sei")

k = 0;
       
while (1)
      {
        data = getChar(); 
        if (data == '|') {
            k = 0;
            lcd_clear();
            continue;
        }
        lcd_gotoxy(k % 16, k / 16);
        lcd_putchar(data);  
        k++;        
      }
}
 

CodeNameHawk

Moderator
Команда форума
Если только в одну сторону(от esp01 к attiny2313) не надо.
Попробуйте поставить резистор 1к с ноги Tx(Esp) на +3.3В.
 
Последнее редактирование:
Сверху Снизу