
上图程序一直循环执行,DEBUG下串口会连续输出ADC的采样结果并换行,
但是程序下载到Flash后运行,串口一直输出0000并换行;
sprintf赋值好像没起作用?请问这是什么问题
sprintf是C标准库中将数字变为字符的,用来串口发送(网上找的)
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

上图程序一直循环执行,DEBUG下串口会连续输出ADC的采样结果并换行,
但是程序下载到Flash后运行,串口一直输出0000并换行;
sprintf赋值好像没起作用?请问这是什么问题
sprintf是C标准库中将数字变为字符的,用来串口发送(网上找的)
你好,这个问题我能联想到的就是芯片在flash下和ram下执行速度不同导致的。
工程里面有使用memcpy函数吗?
执行速度不同是因为存储器介质不同,ram肯定比rom快。而我提到执行速度问题,主要是因为一般ram能运行flash不能运行,大多是因为运行速度不同引起的,也就是需要对某些程序添加memcpy将程序从flash搬运到ram运行
你看看Device_init()里面的memcpy函数是否有被启用。如果启用了还是有这个问题,那我可能要去联系一下其他工程师,看看是否跟sprintf函数有关
你好,这边工程师回复:
1、有没有试过用更长的msg?比如定义为“char msg [100]”。为了查看 sprintf 代码是否溢出了 char 数组。
2、可以尝试不使用sprintf 发送,看看是否运行正常?判断一下到底sprintf 是否真的是问题所在。