使用cube整了几个测试程序,遇到了几个奇葩问题,大部分都是重新创建并生成一个项目问题就能解决,然而纠结于问题出自哪里,之前在自己笔记本上使用cube生成项目时都没遇到这些问题,而现在使用台式机却频繁遇到类似的小问题,大家在使用cube时有没有遇到类似的问题?又是怎么解决的呢?
两者区别在于:(cube及keil版本一样)
笔记本:win7 32位
台式机:win10 64位
遇到的问题如下:
1、串口接收缓存区仅接收一个字节的数据
现象:
调用串口接收函数:HAL_UART_Receive(&huart1,(uint8_t *) temp,100,2);结果无论发送的数据多少,接收到的缓存区仅temp[0]获取到数据,无法接收完整的串口数据。
解决方式:重新创建一个串口等配置一样的项目,编译-》运行,发现同样的配置,同样的代码,却能正常的接收串口程序了,,,
2、strlen()函数获得的数组长度在判断语句中失效
运行有误代码:(这是用于清空缓存区的代码)
- for(i=0; i<strlen(temp);i++)
- {
- temp[i] = 0;
- }
现象:temp缓存区未被清空
解决办法:
- len = strlen(temp);
- for(i=0; i<len;i++)
- {
- temp[i] = 0;
- }
运行结果:temp缓存区完成清空操作~~