我一直在尝试使用 printf 函数使用 ATmega8 的串行端口显示浮点值,而不是显示浮点值,'?显示字符。输出是
漂浮: ?
这是代码
#include <stdio.h>
#include <float.h>
#include <avr/io.h>
int printCHAR(char character, FILE *stream)
{
while(!(UCSRA&0x20));
UDR=data;
return 0;
}
FILE uart_str = FDEV_SETUP_STREAM(printCHAR, NULL, _FDEV_SETUP_RW);
int main(void)
{
float fl = 1.3;
stdout = &uart_str;
UCSRB=0x18; // RXEN=1, TXEN=1
UCSRC=0x06; // no parit, 1-bit stop, 8-bit data
UBRRH=0;
UBRRL=71; //9600 baud rate
while(1)
{
printf("\r\nFloat: %f",fl);
}
}