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

求助!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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版