我正在使用XC16编译器在MPLAB X中进行dsPIC33C项目。我已配置UART用于printf输出,这工作得很好。然而,当我使用scanf时,它没有像我预期的那样阻塞输入——它只是立即返回。 我查看了项目的地图文件,看到 scanf 解析为 libc99-elf.a 中的低级实现(函数如 ___vscanf 和 __scanf_core)。似乎缺少一个实际从UART读取字符的低级挂钩。 为了测试,我已经实现了UART1_Read(),并且它按预期工作——直到接收到数据为止。我还添加了对getchar()和getch()的实现,它们调用了UART1_Read(),但是scanf仍然不阻塞,只是不读取任何内容就返回。
我怎样才能scanf()在我的项目中使块并等待UART输入?
任何帮助或建议都将不胜感激!
|