Цитата(ArtTheft @ Aug 29 2014, 18:23)

Потихоньку осваиваю STM32VLDiscovery.
Написал код, который банально заменить конструкцию ",," на "0,".
Но он почему-то не работает как надо.
Подскажите в чем моя ошибка
Я нашёл 5 ошибок:
1) uart1_rx_bit не инициализирована, поскольку она глобальна, то будет нулём, хотя и не айс так делать.
2) из нулевого индекса uart1_rx_bit идёт вычитание единицы в индексе, вот тут уже серьёзно ... по логике замены, должно быть прибавление единицы.
Код
if ((uart1_rx_buf[uart1_rx_bit]==",")&&(uart1_rx_buf[uart1_rx_bit-1]==",")) //Если пришло сообщение о нажатии
{
uart1_rx_buf[uart1_rx_bit] = "0";
uart1_rx_buf[uart1_rx_bit+1] = ",";
}
3) нигде нет изменения индекса uart1_rx_bit, у вас любой принятый символ пишется в нулевой индекс.
4) отправка буфера в UART идёт всегда, независимо, пришло что-то или нет.
5) так отправлять в UART нельзя, после каждого символа, записанного в DR, нужно дождаться, пока он уйдёт в сдвиговый регистр (Tx Empty).
"... часами я мог наблюдать, как люди работают." (М. Горький)