Пн янв 28, 2019 22:53:35
volatile char RX_BUF[80] = {'\0'};
void USARTSend(const unsigned char *pucBuffer)
{
/////////////////////////////////////////////////////////////////////////////////////////
while (*pucBuffer)
{
USART_SendData(USART1, *pucBuffer++);
while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) {}
}
////////////////////////////////////////////////////////////////////////////////////////
}
...
USARTSend("\r\nI has received a line:\r\n");
USARTSend(RX_BUF);
...
user/main.cpp(162): error: no matching function for call to 'USARTSend'
USARTSend(RX_BUF);
^~~~~~~~~
Вт янв 29, 2019 05:32:45
void USARTSend(const char *pucBuffer);
Вт янв 29, 2019 11:26:38
Вт янв 29, 2019 11:36:25
Т.е. функция "strupr" не входит в стандартную поставку Keil 5.26, надо качать откуда нибудь, или искать самому?
Вт янв 29, 2019 14:20:21
Вт янв 29, 2019 15:07:16
Пт фев 01, 2019 14:00:58
ну, положим, avr-gcc это тоже может и весьма успешно... курить __memxVladislavS писал(а):Есть компилятор, который позволяет такое сделать на AVR. Это, конечно, злобный хак, но...
void put_str(const __memx char *str){
while(*str) UDR = *str++; // я знаю, что надо ждать готовности USART, это просто пример использования __memx
}
char str1[] = "From RAM";
const __flash char str2[] = "From FLASH";
int main(void){
put_str(str1);
put_str(str2);
}