[STM32F1] USART3进入不到接收中断

[复制链接]
3512|42
 楼主| xxmmi 发表于 2018-12-10 19:48 | 显示全部楼层
重新新建了个工程,也有启动文件和中断向量表,可是还进入不了串口3的接收中断
void USART3_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
        
        /* config USART3 clock */
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
        
        /* USART3 GPIO config */
        /* Configure USART3 Tx (PB.10) as alternate function push-pull */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB, &GPIO_InitStructure);   
        /* Configure USART3 Rx (PB.11) as input floating */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
         
        /* USART3 mode config */
        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(USART3, &USART_InitStructure);
        
        
        NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQChannel;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;               
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;        
        NVIC_Init(&NVIC_InitStructure);
        
        USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);
        USART_Cmd(USART3, ENABLE);
}
 楼主| xxmmi 发表于 2018-12-10 19:53 | 显示全部楼层
 楼主| xxmmi 发表于 2018-12-10 19:56 | 显示全部楼层
直接接的db9,共地了
 楼主| xxmmi 发表于 2018-12-10 19:59 | 显示全部楼层
检查了,没有问题
 楼主| xxmmi 发表于 2018-12-10 20:18 | 显示全部楼层
引脚有没有初始化配置?中断配置对了吗?一般就是串口配置的问题,多看32的技术手册。
liliang9554 发表于 2018-12-10 20:22 | 显示全部楼层
你也可以参考下正点原子的例程,他们的程序写的很详细也有配套的电子书。
 楼主| xxmmi 发表于 2018-12-10 20:28 | 显示全部楼层

这是最新建的工程,还是不行。大神们,能否帮小弟看看
heimaojingzhang 发表于 2018-12-13 16:36 | 显示全部楼层
中断向量指过去了吗
keaibukelian 发表于 2018-12-13 16:43 | 显示全部楼层
中断使能了吗
keaibukelian 发表于 2018-12-13 16:44 | 显示全部楼层
中断使能了吗
labasi 发表于 2018-12-13 16:49 | 显示全部楼层
中断向量的问题
paotangsan 发表于 2018-12-13 17:03 | 显示全部楼层
一个是总中断要开启,一个是串口接收中单也要开启
renzheshengui 发表于 2018-12-13 17:06 | 显示全部楼层
io口是如何配置的啊
wowu 发表于 2018-12-13 17:15 | 显示全部楼层
没开中断吗?
xiaoqizi 发表于 2018-12-13 17:21 | 显示全部楼层
示波器上有波形吗
gongche 发表于 2018-12-22 14:18 | 显示全部楼层
用示波器测一下STM32的RX线(PC发送数据时)是否有数据波形
huwr 发表于 2018-12-22 14:21 | 显示全部楼层
用示波器看波形看看RX有没有收到数据,确定硬件问题还是软件问题,在来排查用示波器不太确定的话,烧个串口3的例子工程进去看看,如果还是进不了中断,那就是硬件问题,如果可以,还是你自己的配置问题。
 楼主| xxmmi 发表于 2018-12-22 14:24 | 显示全部楼层
直接调用串口的接收函数,能够一位一位的接收,说明串口上收到数据了,但就是进不去中断,中断配置我看手册和很多例程都只有这些了,不知问题出在哪儿。
happy_10 发表于 2018-12-22 14:27 | 显示全部楼层

不用中断,查询接收完成标志位也可以判断

能查询到相关的标志位吗?
 楼主| xxmmi 发表于 2018-12-22 14:30 | 显示全部楼层
今天用keil重新建工程,就能正常使用了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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