OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2388|回复: 4

stm32f407zgt6串口接收中断接收异常

[复制链接]

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-2-19
在线时间
22 小时
发表于 2016-6-2 15:54:54 | 显示全部楼层 |阅读模式
       各位有没有遇到这样的问题。就是一帧串口数据过来,只能触发一帧数据中的头一个字符的中断,后来改变数据帧中的字符时间间隔后,能收到更多一点的数据,但是依然不能收全。望各位朋友能帮忙一二。以下是中断函数,NVIC配置和现象的截图以及485的配置代码。void USART_485_Configuration(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;

        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOD, ENABLE);
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3 , ENABLE);

        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
        GPIO_PinAFConfig(GPIOB,GPIO_PinSource10,GPIO_AF_USART3);        
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;        
        GPIO_Init(GPIOB, &GPIO_InitStructure);                                                                                                                 
        GPIO_PinAFConfig(GPIOB,GPIO_PinSource11,GPIO_AF_USART3);

        USART_InitStructure.USART_BaudRate = 9600;
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;
        USART_InitStructure.USART_StopBits = USART_StopBits_1;
        USART_InitStructure.USART_Parity = USART_Parity_No;
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
        USART_Init(USART3,&USART_InitStructure);

        USART_ITConfig(USART3,USART_IT_RXNE,DISABLE);  
        USART_ITConfig(USART3,USART_IT_IDLE,ENABLE);

        USART_Cmd(USART3, ENABLE);
        USART_ClearITPendingBit(USART3, USART_IT_TC);

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_Init(GPIOD, &GPIO_InitStructure);   
}

NVIC配置

NVIC配置

图1 NVIC配置


中断函数

中断函数

图2 中断函数配置


接收现象

接收现象

图3 接收效果


     图3中的接收效果,最顶上的接收数据为完整的一帧数据,数据帧都以c5开头。



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-2-19
在线时间
22 小时
 楼主| 发表于 2016-6-2 16:56:16 | 显示全部楼层
回复 支持 反对

使用道具 举报

58

主题

6291

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11406
金钱
11406
注册时间
2014-4-1
在线时间
1282 小时
发表于 2016-6-2 17:01:50 | 显示全部楼层

中断接收程序好像有问题,
只有IDLE标志满足条件才会保存数据。。。

这对吗?



回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-2-19
在线时间
22 小时
 楼主| 发表于 2016-6-2 17:14:26 | 显示全部楼层
xuande 发表于 2016-6-2 17:01
中断接收程序好像有问题,
只有IDLE标志满足条件才会保存数据。。。

这个是可以得啊~它是!= RESET。。RESET为0。中断过来的时候这个位就是1.这样子可以的
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-2-19
在线时间
22 小时
 楼主| 发表于 2016-6-3 09:24:46 | 显示全部楼层
上班再把自己的帖子顶起~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 19:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表