OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4587|回复: 5

f407原子的例程,改成usart6,发送正常,接收进不了中断,求助!

[复制链接]

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-8-23
在线时间
20 小时
发表于 2021-3-25 16:00:55 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 thesky 于 2021-3-25 16:10 编辑

确定使能了串口接收,以下是代码:
#if EN_USART6_RX   //
u8  USART6_RX_BUF[USART6_REC_LEN]; //
u16 USART6_RX_STA;                         //


void uart6_init(u32 bound){

        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC,ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART6,ENABLE);//

        USART_DeInit(USART6);//
     
        GPIO_PinAFConfig(GPIOC,GPIO_PinSource6,GPIO_AF_USART6); //GPIOC6   USART6-TX
        GPIO_PinAFConfig(GPIOC,GPIO_PinSource7,GPIO_AF_USART6); //GPIOC7   USART6-RX
        
        //USART3
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7; //GPIOC6  GPIOC7
        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(GPIOC,&GPIO_InitStructure); //

   
        USART_InitStructure.USART_BaudRate = bound;//
        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(USART6, &USART_InitStructure);  
                        
#if EN_USART6_RX        
        //Usart6 NVIC ÅäÖÃ
        NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;//
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;//
        NVIC_InitStructure.NVIC_IRQChannelSubPriority =1;                //
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        //
        NVIC_Init(&NVIC_InitStructure);        //
        
        USART_ITConfig(USART6, USART_IT_RXNE, ENABLE);
#endif
        USART_Cmd(USART6, ENABLE);  //
        
        //USART_ClearFlag(USART6, USART_FLAG_TC);
}

void USART6_IRQHandler(void)                        //
{
        u8 Res;
        if (USART_GetITStatus(USART6, USART_IT_RXNE) != RESET)//
    {
        Res = USART_ReceiveData(USART6);//(USART6->DR);        //
                //queue_push_436(Res);
                testBuff[testCount]=Res;
                testCount++;
                if(testCount>7){
                        testCount=2;
                        uart6_sendbytes(testBuff,7);
                }
    }
        
}
#endif

最佳答案

查看完整内容[请看2#楼]

EN_USART6_RX 的值必须是1代码中 NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;[/backcolor] 应该为[/backcolor] NVIC_InitStructure.NVIC_IRQChannel = USART6_IRQn;[/backcolor]
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

174

帖子

0

精华

高级会员

Rank: 4

积分
725
金钱
725
注册时间
2016-1-9
在线时间
64 小时
发表于 2021-3-25 16:00:56 | 显示全部楼层
EN_USART6_RX 的值必须是1代码中
NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;
应该为
NVIC_InitStructure.NVIC_IRQChannel = USART6_IRQn;

回复

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-8-23
在线时间
20 小时
 楼主| 发表于 2021-3-25 16:22:03 | 显示全部楼层
whyviking 发表于 2021-3-25 16:20
EN_USART6_RX 的值必须是1代码中
NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;
应该 ...

确定是1
//usart6
#define USART6_REC_LEN                          200          //
#define EN_USART6_RX                         1                //
回复

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-8-23
在线时间
20 小时
 楼主| 发表于 2021-3-25 16:22:34 | 显示全部楼层
thesky 发表于 2021-3-25 16:22
确定是1
//usart6
#define USART6_REC_LEN                          200          //

对照了很久,没看出问题,正在排查硬件
回复

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-8-23
在线时间
20 小时
 楼主| 发表于 2021-3-25 16:23:41 | 显示全部楼层
whyviking 发表于 2021-3-25 16:20
EN_USART6_RX 的值必须是1代码中
NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;
应该 ...

感谢,感谢,你的眼神真毒
回复

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-8-23
在线时间
20 小时
 楼主| 发表于 2021-3-25 16:29:43 | 显示全部楼层
已经验证过了,确实是粗心了
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-28 06:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表