注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
Tobey的个人空间 https://home.eeworld.com.cn/space-uid-719346.html [收藏] [复制] [分享] [RSS]
日志

stm32cubemx生成的项目中遇到的奇葩问题

已有 1072 次阅读2017-8-14 08:50 |个人分类:硬件开发_嵌入式编程



      使用cube整了几个测试程序,遇到了几个奇葩问题,大部分都是重新创建并生成一个项目问题就能解决,然而纠结于问题出自哪里,之前在自己笔记本上使用cube生成项目时都没遇到这些问题,而现在使用台式机却频繁遇到类似的小问题,大家在使用cube时有没有遇到类似的问题?又是怎么解决的呢?
两者区别在于:(cube及keil版本一样)
       笔记本:win7 32位
       台式机:win10 64位

遇到的问题如下:
1、串口接收缓存区仅接收一个字节的数据
现象:
     调用串口接收函数:HAL_UART_Receive(&huart1,(uint8_t *) temp,100,2);结果无论发送的数据多少,接收到的缓存区仅temp[0]获取到数据,无法接收完整的串口数据。

解决方式:重新创建一个串口等配置一样的项目,编译-》运行,发现同样的配置,同样的代码,却能正常的接收串口程序了,,,

2、strlen()函数获得的数组长度在判断语句中失效
运行有误代码:(这是用于清空缓存区的代码)
[C] 纯文本查看 复制代码
for(i=0; i<strlen(temp);i++)
{
        temp = 0;
}

现象:temp缓存区未被清空

解决办法:
[C] 纯文本查看 复制代码
len = strlen(temp);
for(i=0; i<len;i++)
{
        temp = 0;
}

运行结果:temp缓存区完成清空操作~~




本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册