你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f030的Usart中断方式为什么始终进不了中断?

[复制链接]
alisa123 提问时间:2016-5-29 17:59 /
我用stm32f030的Usart中断方式为什么始终进不了中断,求高手指点,谢谢!代码如下:
void USART1_Configuration(void)
  {
    USART_InitTypeDef USART_InitStructure;  
    GPIO_InitTypeDef GPIO_InitStructure;
    NVIC_InitTypeDef NVIC_InitStructure;

    /* ʹÄÜAHBʱÖÓ */
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA | RCC_AHBPeriph_GPIOB |
                        RCC_AHBPeriph_GPIOC | RCC_AHBPeriph_GPIOF, ENABLE);

    /* ʹÄÜAPB2ʱÖÓ */
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

    /* ÍâÉèÖÐ¶Ï */
    NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;                  //IRQͨµÀ:´®¿Ú1
    NVIC_InitStructure.NVIC_IRQChannelPriority = 1;                    //ÓÅÏȼ¶ :1¼¶
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                    //ʹÄÜIRQͨµÀ
    NVIC_Init(&NVIC_InitStructure);

    GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_1);
    GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_1);

    /* ¶¨ÒåUSART TX_RX Òý½ÅΪ¸´ÓÃÊä³ö */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;            //Òý½Å
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;                       //¸´ÓÃģʽ
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                  //¸ßËÙ
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;                     //ÍÆÍêÊä³ö
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;                       //ÉÏÀ­
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    /******************************************************************
    USART²ÎÊý³õʼ»¯:  ²¨ÌØÂÊ     ´«ÊäλÊý   Í£Ö¹Î»Êý  Ð£ÑéλÊý
                        9600         8         1        0(NO)
    *******************************************************************/
    USART_InitStructure.USART_BaudRate = 9600;                         //É趨´«ÊäËÙÂÊ
    USART_InitStructure.USART_WordLength = USART_WordLength_8b;        //É趨´«ÊäÊý¾ÝλÊý
    USART_InitStructure.USART_StopBits = USART_StopBits_1;             //É趨ֹͣλ¸öÊý
    USART_InitStructure.USART_Parity = USART_Parity_No ;               //²»ÓÃУÑéλ
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//²»ÓÃÁ÷Á¿¿ØÖÆ
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;    //ʹÓýÓÊպͷ¢Ë͹¦ÄÜ
    USART_Init(USART1, &USART_InitStructure);                          //³õʼ»¯USART1

    USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);                     //ʹÄÜUSART1½ÓÊÕÖжÏ

    USART_Cmd(USART1, ENABLE);
     /* Clear Transmission complete flag */
        USART_ClearFlag(USART1, USART_FLAG_TC);   
  }

void sInitMCU(void)
{
    USART1_Configuration();                                                            
}

  int main(void)
{
    sInitMCU();
    while(1)
    {

    }
}

void USART1_IRQHandler(void)
{
        if(USART_GetITStatus(USART1,USART_IT_RXNE) == SET)
    {
        lubReceiveData = USART_ReceiveData(USART1);
        USART_ITConfig(USART1, USART_IT_TC, ENABLE);
        USART_SendData(USART1,lubReceiveData);
//       USART_ClearITPendingBit(USART1,)
    }
    if(USART_GetITStatus(USART1,USART_IT_TC) == SET)
    {
        USART_SendData(USART1,lubReceiveData);
        USART_ITConfig(USART1, USART_IT_TC, DISABLE);
        USART_ClearITPendingBit(USART1,USART_IT_TC);
    }
}

收藏 1 评论6 发布时间:2016-5-29 17:59

举报

6个回答
丹心汗青 回答时间:2016-10-25 13:42:09
楼主可调试ok了?
xhzheng 回答时间:2016-10-25 16:48:09
好像缺少启动中断的程序;
可参考HAL库的例程;
alisa123 回答时间:2016-10-26 09:15:21

调试好了,程序没问题 !
alisa123 回答时间:2016-10-26 09:16:24
xhzheng 发表于 2016-10-25 16:48
好像缺少启动中断的程序;
可参考HAL库的例程;

谢谢你的回复,程序中有启动中断的,是“USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);                     ”
alisa123 回答时间:2016-10-26 09:16:57
xhzheng 发表于 2016-10-25 16:48
好像缺少启动中断的程序;
可参考HAL库的例程;

谢谢你的回复,程序中有启动中断的,是“USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);                     ”
chifen 回答时间:2016-10-26 09:59:04
/* SysTick end of count event each 1ms */
  RCC_GetClocksFreq(&RCC_Clocks);
开始时钟,
SysTick_Config(RCC_Clocks.HCLK_Frequency / 100000); //内部定时器
加入试试

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版