7.29
暑假在校一段时间,再过一个星期就回家了,有点小激动
上一段时间在自己电脑CCS上编译了下师兄给的虚拟示波器代码,发现编译有错误,就没管了(argument of type “volatile unsigned char ” is incompatible with parameter of type “unsigned char “)
其实我对MSP430已经兴趣在减…别人都开始玩先进算法,玩机器学习,就我们还要玩单片机,都硕士了……不是我歧视玩单片机,我还是很喜欢玩单片机的…
今天下午又看了下错误,是volatile这个变量声明前加的声明有问题,在辅导单片机课程的时候也问过别人,师兄说是不加的话单片机会时不时的优化通用寄存器,我一开始还是不理解什么叫优化了地址,然后今天百度了下,单片机为了加快运算速度,会规定时间优化寄存器地址,把地址数据刷新(我的理解,不知道是不是这样),这样别的地址需要提取的时候就会拿不到这被刷新地址的数据,如果加入了volatile声明,就会固定住地址,不会让单片机刷新这个地址,以前用IAR环境从来不用这样。
解决办法:将指针声明函数里的char *p改成volatile char *p,使得变成实参,固定参数地址