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在调陀螺仪么~~~:lol
页: 1 [2] 3 4 5
查看完整版本: 求助!HAL库函数 串口中断接收!急急急!加入悬赏