2206|1

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

STM32串口问题 [复制链接]

为什么我的串口能发送数据,但是接收不到数据呢,求大神指导,我是新手
这是我的中断程序,怎么接受不到中断呢,灯没有亮,是串口的问题还是中断的问题?
void USART1_IRQHandler(void)
{
        u8 S;
        u8 D;
        if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
        {
                USART_ClearITPendingBit(USART1,USART_IT_RXNE);
                GPIO_SetBits(GPIOC, GPIO_Pin_4);
                delay_ms(500);
                if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) != RESET)
                {
                        USART_SendData(USART1, S);
                        while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
                        USART_SendData(USART1, D);
                        while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
                        GPIO_SetBits(GPIOC, GPIO_Pin_4);
                }
        }
}

下面是我的寄存器配置,哪里出了问题,求指导

void NVIC_Configuration(void)
{
        NVIC_InitTypeDef NVIC_InitStructure;
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
       
        NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_Init(&NVIC_InitStructure);
       
        NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_Init(&NVIC_InitStructure);
       
        #ifdef  VECT_TAB_RAM  
                NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
        #else   
                NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);  
        #endif
}

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC| RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO|RCC_APB2Periph_SPI1 |RCC_APB2Periph_USART1, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;  //USART1 TxD
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;  //USART1 RxD
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING ;  
        GPIO_Init(GPIOA, &GPIO_InitStructure);
此帖出自stm32/stm8论坛

最新回复

             delay_ms(500);                 if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) != RESET) 若usart1中断设定没有错,可能是这2行造成的   详情 回复 发表于 2015-2-2 10:20
点赞 关注
 

回复
举报

55

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
             delay_ms(500);
                if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) != RESET)
若usart1中断设定没有错,可能是这2行造成的
此帖出自stm32/stm8论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条
ADI &文晔 探索季第一站,邀您在活动帖跟帖,ADI资深工程师将与您一道寻求解决之道! ...
春晚,最出圈当属穿着棉马甲跳秧歌的机器人”秧Bot”。
转手绢、飞手绢、变换队形,精准度和稳定性甚至超越人类,这背后少不了电机控制技术。

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表