电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
STM32怎么复位串口中断?
已解决
73482
个问题
已帮助
5993
位优秀工程师
STM32怎么复位串口中断?
liubo
2018-09-10
浏览量:2957
是不是通过这一句USART_ITConfig(USART1 USART_IT_RXNE ENABLE);//开启串口接受中断呢?
显示全部
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
FEItwo
1.首先配置串口1管脚
/* 配置串口1引脚 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA &GPIO_InitStructure);
2.下面的代码设置并使能串口1中断,这个应该放在有一个函数中,然后再main中启用该函数
/* Enable the USART1 Interrupt */
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
3.写一个串口1的中断ISR
void USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1USART_IT_RXNE)==SET)
{
USART_ClearITPendingBit(USART1USART_IT_RXNE);
get_data=USART_ReceiveData(USART1);
//这里可以定义一个buffer缓冲,全局的。
}
if(USART_GetFlagStatus(USART1USART_FLAG_ORE)==SET)
{
USART_ClearFlag(USART1USART_FLAG_ORE);
USART_ReceiveData(USART1);
}
}
发布于
2018-09-10
举报
评论 0
0
0
其他答案
数量:
16
小小秋风1
程序执行完中断程序后自动复位的啊
发布于
2018-09-10
举报
评论 0
0
0
liangeeg
清除中断标志位,调整接收数组、指针
发布于
2018-09-10
举报
评论 0
0
0
米饭米饭吖
串口中断的复位在于对中断标记的清除
你清除了中断标记,中断就相当于复位了
发布于
2018-09-10
举报
评论 0
0
0
FEItwo
首先配置串口1管脚,再main中启用该函数,写一个串口1的中断ISR
发布于
2018-09-10
举报
评论 0
0
0
yhj416606438
这也是配置串口中断的函数,还有串口也要配置
发布于
2018-09-10
举报
评论 0
0
0
Andrewz
开启中断后通过读DR寄存器可以自动清除中断标识.
发布于
2018-09-11
举报
评论 0
0
0
最帅的廖先生
这个是配置串口中断,另外还要设置串口。
发布于
2018-09-11
举报
评论 0
0
0
莱克迷KW
是的,是通过你的这个开启中断,但是复位并不是这一句了
是要清除中断标志位的
发布于
2018-09-11
举报
评论 0
0
0
Chauncey
清除中断标志位之后,就对中断的状态复位了
发布于
2018-09-11
举报
评论 0
0
0
我对面的武器
通过清除中断标志位就可以了,下一次还可以进中断的
发布于
2018-09-12
举报
评论 0
0
0
chen0000009
这一句是开启串口接收中断的,如果要复位,需要先禁用串口中断,清除中断标志位,然后再重新启用
发布于
2018-09-17
举报
评论 0
0
0
Reuben
要清除中断标志位,对对应的中断状态复位操作
发布于
2018-09-27
举报
评论 0
0
0
Florrie
复位串口的中断要先把你的串口中断禁用,再清除串口中断标志位,然后复位
发布于
2018-09-28
举报
评论 0
0
0
drepa
如果你是循环接收数据的,你的这句config是开启串口中断的,不是清除标志位,作用不一样的。
发布于
2018-09-30
举报
评论 0
0
0
菜鸟冷虎
你的串口中断要先关闭,然后禁用你的串口就可以复位
发布于
2018-10-13
举报
评论 0
0
0
Angel_YY
复位串口中断首先要禁用串口中断,然后清除标记位,重新使能中断即可。
发布于
2018-10-17
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
STM32怎么复位串口中断?
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: