Столкнулся со следующими проблемами:
1. Как записать программу во флеш память МК?
С помощью JTAG прошиваю его, все работает, после передергивания питания приходится заного прошивать.
2. Не понятный результат при работе с USART.
Создаю буфер размера N, в него записавыю принимаемые символы, если буфер полон, то вывожу его содержимое и затираю, если смотреть через дебагер, то все работает правильно, а если через Terminal и другие подобные программы, то возникает ошибка. Допусти у нас буфер размера N, тогда первые N элементов записываются и выводятся нормально, а далее в него записывается всегда N-3 элемента, недостающие 3 элемента берутся из 1-й записи т.е.
Ввели: Получаем:
12345 54321
qw wq123
rt tr321.
Вот код:
CODE
char Buffer[BUFFER_SIZE] = { 0 };
int index = 0;
while(1)
{
b=USART_Read(USART0);
if (index == BUFFER_SIZE)
{
USART_WriteBuffer(USART0, Buffer, index);
memset(Buffer, 0, sizeof(Buffer));
index = 0;
}
else
{
Buffer[index++]=b;
}
}
Не понимаю где хранятся эти три элемента, логически вроде все правильно.