你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

求助!HAL库函数 串口中断接收!急急急!加入悬赏  

[复制链接]
magnbudie 提问时间:2015-1-16 10:32 /
阅读主题, 点击返回1楼
收藏 2 评论40 发布时间:2015-1-16 10:32
40个回答
damiaa 回答时间:2015-1-16 13:31:44
本帖最后由 damiaa 于 2015-1-16 13:37 编辑

HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET);                                使能接收
                这个IO和时间搭配问题吧。
用232试试。或者只接收。IO搞个低 死的     ?
magnbudie 回答时间:2015-1-16 13:48:57
我把原有中断服务函数的标志位处理函数的顺序改了一下。
现在可以收到数据了,但是第一个数据经常出现跟帧头不匹配的现象,我感觉是第一个字节丢掉。

求分析!

服务函数修改后顺序

服务函数修改后顺序

偶尔收到正确帧

偶尔收到正确帧

错误帧

错误帧
magnbudie 回答时间:2015-1-16 13:49:49
大秦正声 发表于 2015-1-16 11:30
通信距离有多远?用max3232?

50cm通信距离
magnbudie 回答时间:2015-1-16 13:50:22
大秦正声 发表于 2015-1-16 11:30
通信距离有多远?用max3232?

max422. 硬件没有问题,poll模式可以正常接收
magnbudie 回答时间:2015-1-16 13:51:03
党国特派员 发表于 2015-1-16 11:37
HAL_UART_Receive_IT 只需要调用一次。
还有就是你的接收函数里都干了些什么,会不会时间超长了。
...

接收回调只是加了一个标志位,没干别的
magnbudie 回答时间:2015-1-16 13:51:54
dsjsjf 发表于 2015-1-16 12:08
用户函数区处理时间太长

用户函数的也就回调中的控制函数,没别的了
magnbudie 回答时间:2015-1-16 13:53:00
damiaa 发表于 2015-1-16 13:31
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET);                                使能接收
       ...

设备在收到我的指令50us后才会发数据的。我感觉不是因为使能脚的问题
wangshu2013 回答时间:2015-1-16 15:12:29
接收中断未处理完整;
中断+查询:第一个接收中断来了后改为查询方式接收;
是否使用FIFO?
AndyYau-268557 回答时间:2015-1-16 15:35:43
我想是:在规定时间里中断里发送肯定正常发送,之后到接受中断里,由于你的发送时间太短,中断有优先级,建议可惜在发送中断时间放大点和接受程序减少放中断里。个人意见,仅供参考。
xyc2690 回答时间:2015-1-16 15:42:45
LZ在调陀螺仪么~~~

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版