stm32f103串口1和串口2冲突问题,求指教

2019-07-21 03:39发布

是这样的,现在需要同时用到串口1和串口2接收数据,然后进行计算什么的,最后通过串口1打印到PC端,串口1和串口2接收的数据类型相同,波特率相同,是同样的传感器,换言之,串口1和串口2同时有大量数据输入,现在的问题是,串口1或者串口2单独工作时都能正常工作,但当串口1接收数据正常工作时,只要PA3(USART2的RX)连接传感器数据发送端,程序立刻卡死,此时如果断开PA3的连接,程序不能恢复,PA3断开状态下复位后可恢复。中断优先级配置附后,所以求教是哪里出了问题,需要哪些程序段我会及时附上,然后之前有看到一个帖子说可能是假溢出,但没怎么看懂,求教
void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;


NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
ZhLeLe
1楼-- · 2019-07-21 05:07
串口中断的优先级设置一下。然后时中断保护,比如进串口1的中断之后,关闭串口2的中断,等串口1中断执行完成之后在打开串口2的中断。还有就是建议采用串口加DMA的方式,不同的串口,用不同的DMA通道,这样就不会出现冲突的问题了
Dayfly
2楼-- · 2019-07-21 05:32
应该不是中断优先级的问题  如果是中断接收,我记得如果不配置优先级,是根据默认的中断向量表按顺序执行。如果是查询接收的话,看看是不是掉到哪个循环里的。仿真下,看下程序到底死在哪儿了。
atalanta
3楼-- · 2019-07-21 11:12
Dayfly 发表于 2019-3-28 10:46
应该不是中断优先级的问题  如果是中断接收,我记得如果不配置优先级,是根据默认的中断向量表按顺序执行。 ...

OK~谢谢,我试试看
atalanta
4楼-- · 2019-07-21 13:31
 精彩回答 2  元偷偷看……
login_FAE
5楼-- · 2019-07-21 14:52
你的传感器数据量是不是很大
Dayfly
6楼-- · 2019-07-21 19:56
atalanta 发表于 2019-3-28 10:49
OK~谢谢,我试试看

还有一个  看看是不是中断的太频繁了  考虑检查嵌套中断了

一周热门 更多>