一.问题 以上的问题是我在程序调试中实验的结果:
实际遇到的问题是:要验证读写寄存器是否正确,如
把数据写入寄存器地址:
WriteRegister( adderss, data );
WriteRegister( 1, 15 );
fficeffice" />
读数据寄存器地址:
ReadRegister(address);
ReadRegister(1);
二.设计的解决问题方法
但这个过程是在单片机里面实现的,现在程序不能通过,我不能确认出现是在那个地方出现了问题。
现在要设计一个步骤来检查子程序是否正确。我觉得pfintf是一个好方式,可以这样设计:
unsigned char i;
i= ReadRegister(1);
printf("i的值为:%d ;",i);
这样可以认为i=15那么我的读写寄存器子程序就没有问题,如i=别的值这个读写寄存器子程序就不正确。
三.串口打印中遇到的问题
printf("15\n ");
在打印输出中可以得到结果:15.
而换一种方式:
i=15;
printf("i的值为:%d ;",i);
可以得到i的值为:3840. 想知道原因,求解决办法。
四.对问题的总结
1.求问思路是否正确。
2.所有问题是怎么验证在编程过程中我所编的子程序正确性,如果本身语法没有问题。对于像我这种刚学习编程的人来说,手里面没有验证过的保证正确的子程序,是个很大的问题。
如果谁又好的方法请不吝赐教,我在这膜拜了。
3.求解printf是否能读出寄存器里面的值
printf输出是个好方法,但不是这么直接用,我在网上少见有人讨论,我了解的是要把十六进制转换成ASICII后才能显示。
我不晓得事实是不是这样,如果是,请高手指教。 |