WOW! Seriöst, wow.. Vad ni svarar.. så många och så snabbt! TACK!
Oj, ska försöka svara på allt..
Nerre
Att lägga in NULL i slutet på strängen, löste problemet och vidare löste det ytterligare problem jag hade som jag tänkte ta efter jag löst det problemet jag skrev om i tråden

Det här är något jag aldrig läst om ens en gång, inte för att jag studerat C överdrivet mycket.. det är endast på hobbybasis min kunskap ligger - jag lär mig längs med vägen, som nu
TomasL
Koden som skickar strängen är så enkel som följande;
Kod: Markera allt
#include <avr/io.h>
#include <util/delay.h>
#include <inttypes.h>
#include <avr/interrupt.h>
#include <stdlib.h>
#ifndef F_CPU
#define F_CPU 8000000UL
#endif
#define USART_BAUD_RATE 1200 // Bits Per Second
#define USART_RX_BUFFER_SIZE 32 // n Bytes in Receive buffer
#define USART_TX_BUFFER_SIZE 32 // n Bytes in Transmit buffer
uint8_t AESkey[] = { 0x4B, 0xFA, 0x1A, 0xBB,
0xC9, 0x87, 0x51, 0x83,
0x6D, 0x2A, 0x98, 0xDC,
0x98, 0xC1, 0xBE, 0xB5 };
uint8_t AESdataENC[] = { 0x41, 0x42, 0x43, 0x44,
0x40, 0x31, 0x32, 0x33 };
int main(void)
{
USART_INIT();
_delay_ms(10);
USART_SEND(AESdataENC);
while (1)
{
//loop
}
}
void USART_INIT(void)
{
UBRRH = UBRRH_VALUE;
UBRRL = UBRRL_VALUE;
UCSRA = 0x00;
UCSRB |= (1 << RXEN); // RXEN, Enable RX
UCSRB |= (1 << RXCIE); // RXCIE, Enable RX interrupt
UCSRB |= (1 << TXEN); // TXEN, Enable TX
UCSRC = 0x86; // 8 Data, 1 Stop, No Parity
}
void USART_SEND(const char *s)
{
// Go through all characters sent into the send-function
while (*s)
// Send characters off to the USART bus, one by one
USART_SEND_BYTE(*s++);
}
void USART_SEND_BYTE(char data)
{
// Wait if a byte is being transmitted
loop_until_bit_is_set(UCSRA, UDRE);
// Send the given data
UDR = data;
}
Koden i övrigt fungerar utan problem, jag kan skicka data över UART'en om jag bara kommenterar bort AESkey strängen.
Koden ovan reflekterar INTE Nerre's förslag med ett NULL tecken i slutet. Följande är en uppdatering och var det som gjorde att det nu fungerar!
Kod: Markera allt
uint8_t AESkey[] = { 0x4B, 0xFA, 0x1A, 0xBB,
0xC9, 0x87, 0x51, 0x83,
0x6D, 0x2A, 0x98, 0xDC,
0x98, 0xC1, 0xBE, 0xB5, 0x00 };
uint8_t AESdataENC[] = { 0x41, 0x42, 0x43, 0x44,
0x40, 0x31, 0x32, 0x33, 0x00 };
bearing
Kommando/kod enligt ovan, ingen angiven längd på det som ska skickas.. bara skicka! Funktionen "send_byte" som du nämner har jag skapat sedan länge, så den fanns redan

Inte för att vara märkvärdig eller något, men det var bland det första jag "lyckades" skriva och det fungerade
AndLi
Enligt rekommendation av Nerre, alltså likadant som ditt förslag, det fungerade perfekt!
Anledningen till att jag inte skriver i ren ASCII är för att när jag felsöker med att skicka över bland annat den sträng som kommer ut från AES krypteringen så innehåller den tecken som inte visas alls eller visas korrekt i terminalfönstret. Sen har jag ett hex baserat protokoll för kommunikationen, så det blir mest enklast i mitt läge
bit96
Underbart! Många tack för beskrivningen! Tillsammans med ditt inlägg och Nerre's info om NULL tecknet i slutet på strängen, eller tydligen fältet då

så förstod jag vad det var som strulade och framförallt!! VARFÖR! Det är ett sånt här svar som får en att hoppa en bakåtvolt och jubla - jag har lärt mig något, som förmodligen kommer sitta i
Än en gång, TACK alla! Uppskattar verkligen er hjälp och tid i detta!