[STM32F0] 有一个关于中断的疑惑请教

[复制链接]
1606|5
 楼主| svenyang 发表于 2016-6-6 20:57 | 显示全部楼层 |阅读模式
有一个关于中断的疑惑请教,在学习F030的中断,根据datasheet F030CC有6个串口中断。
但是配置开启中断的库函数参数只有USART1和USART2
即NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; 这句是对的,
但是换成NVIC_InitStructure.NVIC_IRQChannel = USART4_IRQn;就错了,
查看库文件就没有USART4_IRQn这个参数,这是为什么?难道配置方式不一样吗
xmshao 发表于 2016-6-7 08:05 | 显示全部楼层
usart3/4/5/6...他们几个共用一个中断矢量。  

你可以在参考手册里的VECTOR TABLE看到相关信息,

启动文件里也可看出来。
 楼主| svenyang 发表于 2016-6-7 08:27 | 显示全部楼层
xmshao 发表于 2016-6-7 08:05
usart3/4/5/6...他们几个共用一个中断矢量。  

你可以在参考手册里的VECTOR TABLE看到相关信息,

我知道是共用的,问题是怎么配置才能开启。。。没有找到参数
xmshao 发表于 2016-6-7 08:45 | 显示全部楼层
/**USART3 GPIO Configuration   
    PB10     ------> USART3_TX
    PB11     ------> USART3_RX
    */
    GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    GPIO_InitStruct.Alternate = GPIO_AF4_USART3;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    /* Peripheral interrupt init */
    HAL_NVIC_SetPriority(USART3_6_IRQn, 0, 0);
    HAL_NVIC_EnableIRQ(USART3_6_IRQn);
  /* USER CODE BEGIN USART3_MspInit 1 */

  /* USER CODE END USART3_MspInit 1 */

打赏榜单

svenyang 打赏了 1.00 元 2016-06-07
理由:谢谢积极回复

sflower 发表于 2016-6-7 08:53 | 显示全部楼层
应该写成:UART4_IRQn
 楼主| svenyang 发表于 2016-6-7 15:21 | 显示全部楼层
找到原因了,必须要自己编辑stm32f0xx.h文件,选择里面的#define STM32F030xC去掉注释(我用的是030CC),另外必须要把其他所有的型号定义注释掉!否则下面的变量列表会选择错误,找不到该找到的变量!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

41

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部