NRF52832的函数库比较“纷繁复杂”,出现这种情况,最有可能的原因是函数库配置不当。
NRF52832有两个与串口相关的函数库:app_uart.c与app_uart_fifo.c。其中,app_uart_fifo.c函数库支持printf函数在有缓冲区的情况时发送连续的字符,此时串口的通信是正常的。而如果使用了app_uart.c函数库,由于从个人目前的经验来说,这两个函数库的函数在调用的时候基本没有区别,编译器不会报错,但由于该函数库不支持建立一个FIFO缓冲区,所以只会发送第一个字符。
因此。如果遇见了printf函数只能发送一个字符的情况,而且即使把已有的正确例程的主函数原原本本的抄下来,编译器丝毫不报错,但仍然只能发送一个字符的情况,很大的可能是与串口有关的函数库使用的是app_uart.c而非app_uart_fifo.c。此时,将app_uart.c文件替换成app_uart_fifo.c文件即可解决问题。
(文章来自于作者经验,参考时请以自身具体情况为准。转载时请注明出处)
NRF52832使用printf只能输出第一个字符的问题
最新推荐文章于 2023-12-19 16:01:07 发布