永发信息网

stm32 串口中断发送和接收怎么回事,就是串口的中断方式和查询方式有什么区别?

答案:2  悬赏:0  手机版
解决时间 2021-04-06 11:53
stm32 串口中断发送和接收怎么回事,就是串口的中断方式和查询方式有什么区别?
最佳答案
使用中断接收发送方式,可随时响应串口的接收发送请求,提高串口响应时间;
在程序上操作步骤如下:
首先:在void RCC_Configuration(void)中配置好串口时钟;及在void GPIO_Configuration(void)配置好管脚;
RCC_PCLK2Config(RCC_HCLK_Div1); //串口波特率的确定
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA||RCC_APB2Periph_USART1, ENABLE);

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);

其次:在 void NVIC_Configuration(void)函数中使能串口中断;

NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel; //通道设置为串口1中断(故后面应选择在“void USART1_IRQHandler(void)”开中断)
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //中断占先等级0
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //中断响应优先级0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //打开中断
NVIC_Init(&NVIC_InitStructure);

其次。配置好串口,并开中断

NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel; //通道设置为串口1中断(故后面应选择在“void USART1_IRQHandler(void)”开中断)
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //中断占先等级0
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //中断响应优先级0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //打开中断
NVIC_Init(&NVIC_InitStructure);
最后,可在stm32f10x_.it.c中的void USART1_IRQHandler(void)函数里写上串口中断发生时中断服务函数即可;
u8 RX_dat; //定义字符变量
if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //判断发生接收中断
{
RX_dat=(USART_ReceiveData(USART1) & 0x7F); //接收数据,整理除去前两位
USART_ClearITPendingBit(USART1, USART_IT_RXNE); //清除中断标志
while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET){}//等待接收结束
// USART_ITConfig(USART1, USART_IT_RXNE, DISABLE); //关中断
USART_SendData(USART1,RX_dat); //发送数据
}

程序实现功能:当有数据通过串口发送过来时,程序进入串口中断服务程序,在中断服务程序中发送接收到的数据;
全部回答
中断就像是后台操作一样,在主程序的流程中,不用刻意去关注中断方式发送了没有,何时接收等,而查询方式是在主程序流程中不断查看是否接收到了数据,一般用while不断循环查看。中断方式可以更高效利用CPU ,节省CPU的时间,查询就会增加CPU负担,在程序执行功能较少时,两种差别不大,功能较多时,一般都会采用中断方式。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
香水里面出现红色小圆珠珠,和油有点像是怎么
我在朋友圈发什么老公从来不评论,而有个女的
--How did you find your visit to Qingdao,
像什么一样甜 (除了蜜糖)
两个硬盘大小如何合二为一,一起用
cannotstartserverwithoutanootherplayerjoin
怎么找到代理商,哪里能找到水果代理,我有水
CC休闲吧这个地址在什么地方,我要处理点事
与青春有关的日子第5集 高洋高晋爸爸因为什么
海鲜除了清蒸还有哪些做法
班主任的教育格言,如何做一名优秀的班主任 文
13分之26化最简分数是多少
冰箱变温室的温度设好后为什么自已变低
How about taking short break? I want to ma
何在与蓝牙耳机连接好后,来电时不让手机铃音
推荐资讯
有个人害了一生,很恨他,怎么办,我很不甘心
雷雨第二幕概括300字左右
100kg小麦可以磨出面粉85kg照这样计算,6t小
单选题下列句子,标点符号使用正确的一句是:
岳飞练字的故事告诉我们一个什么道理
刚买的房是底楼,底楼的地面比室外的地面抬高
一千根弦中五十三年并不短暂,为什么说匆匆而
小米手机的微信聊天文字记录被删除了怎么恢复
单选题文字是人类文明进步的标志,世界上最古
去波兰读大学需要考雅思嘛?我的英语不好,但
我的发财树怎么了?放在店里,一直没有晒过太
浅谈客厅隔断墙如何装饰
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?