我想通过usart从stm32f405注销.在我的syscall.c文件中,我实现了通过usart打印的功能:
int _write(int file, char *ptr, int len)
{
int todo;
for (todo = 0; todo < len; todo++)
{
usart_send_char( *ptr++ );
}
return len;
}
Run Code Online (Sandbox Code Playgroud)
功能usart_send_char( *ptr++ );按预期工作.但是当我打电话时:
printf("%s, %d, %3.2f\r\n", "asd", 777, 13.2 );
Run Code Online (Sandbox Code Playgroud)
我得到:
asd, 777, 0.00
浮动变量未正确打印.
Makefile文件:
PROCESSOR = -mcpu=cortex-m4 -mthumb -mfloat-abi=softfp -mfpu=fpv4-sp-d16
CFLAGS += $(PROCESSOR) $(INCLUDES) $(STFLAGS) -Wall -fno-strict-aliasing $(C_PROFILE)
LDFLAGS = $(PROCESSOR) -Wl,-Map=$(PROG).map,--cref,--gc-sections
Run Code Online (Sandbox Code Playgroud)
二手compilator:
Sourcery CodeBench Lite 2014.05-28
Run Code Online (Sandbox Code Playgroud)
哪里弄错了?
Fra*_*eth 15
我没有使用Sourcery Codebench gcc用于STM32F4,但是使用GCC ARM嵌入式工具链,默认情况下不启用printf中的浮点支持.要启用,请添加-u _printf_float到LDFLAGS.
代码示例:
int i = 132;
printf("Result is: %d.%d", i/10, i%10);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9703 次 |
| 最近记录: |