在HT32上做一个项目,涉及到字符串处理,一开始就有思路,就是通过串口中断接收到数据后,再用sscanf()函数进行格式化处理,感觉蛮简单,实际却是调了两个小时。在线调试发现,发生了硬件中断,一开始以为是ssanf()函数的格式化没写好,然后断断续续换了好几种写法,还是同样发生硬件错误。而且进入硬件错误之前,调用了_scanf_int()函数。
最终发现是粗心惹的祸(就是太菜了),sscanf()函数中,所有参数都必须是指针,然后数组名就是一个字符型指针,而当需要整形/浮点型/字符型等变量存储数据时,就是要对变量进行取地址!!!!
另外,用sscanf()提取字符串时,以空格为结束标志的.其实还有其它很多细节,以上是今晚的收获(踩的坑),记录下来分享一下。