我正在读取通过 RS485 发送的值,这是编码器的值我首先检查它是否返回了 E 字符(编码器报告错误),如果没有,则执行以下操作
*position = atoi( buffer );
// Also tried *position = (s32) strtol(buffer,NULL,10);
缓冲区中的值为 4033536 并且位置设置为 33536 这不会在此函数中每次都发生,可能 1000 次中的 1 次,尽管我没有计算。如果失败,将程序计数器重新设置并再次执行该行会返回相同的结果,但再次启动调试器会导致值正确转换。
我正在使用 keil uvision 4,它是一个使用 stm32f103vet6 和 stm32f10 库 V2.0.1 的自定义板,这真的让我很难过,从来没有遇到过这样的事情,在得到任何帮助之前,我们将不胜感激。
谢谢