stm32的复用和中断

stm32中通过结构体将寄存器组织在一起,通过修改结构体成员变量的值就可以达到操作对应寄存器的值。这些都是在stm32f4xx.h文件中完成的。


STM32的GPIO的复用功能:GPIO的基本功能是普通的IO,STM32有自己的各个功能模块,这些内置外设的外部引脚与标准GPIO复用,作为这些模块的功能引脚,就叫复用。

更通俗的讲,GPIO最普通应用为IO口,通过配置寄存器将它设置成串口、并口、模数口等。


1 要使用IO复用功能外设,必须先打开相应地IO口时钟和复用功能时钟外设。

   如 USART1接PA9 、PA10,需要使能GPIOA  ,USART1

2 需要将GPIOA中的MODER寄存器中的IO口(PA9 PA10)配置为复用功能。

3  对IO口的其他参数进行配置。

4 配置GPIOA_AFRL和GPIOA_AFRH寄存器,将IO连接到所需要的AFx。

对于库函数,调用函数GPIO_PinAFConfig函数来实现。

GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);   //  第三个参数确定IO到底复用为哪种功能。


中断管理

中断管理函数主要是在misc.c文件中。   // 在库函数中,利用函数操作寄存器的位数

1  中断优先级分组:分组的设置是由SCB-->AIRCR寄存器的bit8~10来定义的,如组设置3,则3位抢占优先级(000 001 010 011 100 101 110 111 7位0~7可选),1位响应优先级(0   1 两位可选);抢占优先级高于响应优先级,数值越小所代表的优先级就越高。

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

2   中断初始化函数NVIC_Init.

3   使能相应地中断

     使能串口中断的函数:void  USART _ITConfig(USART_TypeDef* USARTx,uint16t_t  USART_IT,FunctionState  NewState );

      如:接收到数据(RXNE读数据寄存器非空),我们要产生中断,则开启中断的方式为:

USART_ITConfig(USART1,USART_IT_RXNE,ENABLE).

4   使能串口

使能串口通过调用函数USART_Cmd(USART1,ENABLE);


5  获取相应中断状态

在使能了某个中断后,当中断发生时,需要在中断处理函数中调用获取中断函数判断是否发生中断。

void USART_GetITStatus(USART1,USART_IT_TC);   //判断是否 串口发送完成  产生中断


6 编写中断处理函数

void USART1_IRQHandler(void);



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一枚努力的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值