×
单片机 > 单片机程序设计 > 详情

STM32串口的学习(2)

发布时间:2020-08-26 发布时间:
|
这次的学习主要是整理串口接收中断

串口中断初始化的代码如下:

 NVIC_InitTypeDef NVIC_InitStructure;

 /* Configure the NVIC Preemption Priority Bits */  
 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); //设置优先级分组:先占优先级0位,从优先级4位
 
 //设置向量表的位置和偏移
 #ifdef  VECT_TAB_RAM  
  /* Set the Vector Table base location at 0x20000000 */ 
  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);   //向量表位于RAM
 #else  /* VECT_TAB_FLASH  */
  /* Set the Vector Table base location at 0x08000000 */ 
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);   //向量表位于FLASH
 #endif

 /* Enable the USARTy Interrupt */
 NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;  //USART1中断
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;  //中断优先级的设置
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;   //IRQ通道使能
 NVIC_Init(&NVIC_InitStructure); //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器USART1

 

NVIC嵌套向量中断控制器

控制器(Nested Vectored Interrupt Controller The National Vaccine Information Center)

这里涉及到外部中断初始化的一些步骤:

1)取相应的中断

2)设置相应的中断优先级

3)使能相应的中断

4)中断的初始化

在中断服务函数中

中断服务函数是

void USART1_IRQHandler(void)
这些中断函数都是在stm32f10x_it. c中定义的。

通过

USART_ReceiveData(USART1);//读取收到的数据

这个函数接收读取到的数据。

发送主要是通过差询的方式

 USART_SendData(COM_USART[COM],(uint8_t) ch);
 while(USART_GetFlagStatus(COM_USART[COM], USART_FLAG_TC) == RESET) {} 

先是发送字符,再就是等待字符发送完成。

其实操作这些跟操作51单片机差不多。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会