OpenEdv-开源电子网

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

stm32F103zet6的UART4串口无法进入中断问题,以下是代码

[复制链接]

6

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2019-4-19
在线时间
13 小时
发表于 2019-4-30 18:57:59 | 显示全部楼层 |阅读模式
1金钱
请问下是我配置问题吗?初始化可以,就是进不去中断,发数据接收不到,我用的是max13487芯片进行485通讯。

void UART4_485_Init(u32 baud)
{
    GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
         
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);        //使能GPIOC时钟
        RCC_APB2PeriphClockCmd(RCC_APB1Periph_UART4,ENABLE);         //使能串口1(485)时钟

         
//    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;          // 485控制输入输出
//        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;        //推挽输出
//        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//        GPIO_Init(GPIOF, &GPIO_InitStructure);

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;  //PA9
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOC, &GPIO_InitStructure);

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;//PA10
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空输入
        GPIO_Init(GPIOC, &GPIO_InitStructure);
       
//        GPIO_ResetBits(GPIOF, GPIO_Pin_11);        //默认为接受模式
//       
//        NVIC_InitStructure.NVIC_IRQChannel = UART4_IRQChannel; //使能串口 2 中断
//        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; //先占优先级 2 级
//        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //从优先级 2 级
//        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中断通道
//        NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化 NVIC 寄存器


        NVIC_InitStructure.NVIC_IRQChannel = UART4_IRQChannel;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);       


   // 使能UART5中断
    USART_InitStructure.USART_BaudRate = baud;                  //设定传输速率
        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(UART4, &USART_InitStructure);      //初始化串口4
       
        USART_ITConfig(UART4, USART_IT_IDLE,ENABLE);  //使能串口4接收中断       
        USART_Cmd(UART4, ENABLE);                     //使能串口4       
        USART_ClearFlag(UART4, USART_FLAG_TC);
        USART_Init(USART1, &USART_InitStructure);

}

void UART4_Send_Data(u8 *buf,u8 len)
{
          for(u8 i=0;i < len; i++)                //循环发送数据
        {                  
                while(USART_GetFlagStatus(UART4, USART_FLAG_TXE) == RESET);          
                USART_SendData(UART4,buf[i]);
        }         
}


void UART4_IRQHandler(void)
{
  while(USART_GetITStatus(UART4, USART_IT_RXNE) != RESET)
          {
            //数据存入环型缓冲区
                UART4_RX_buf[UART4_Rec_len++] = USART_ReceiveData(UART4);
    }

       
}

最佳答案

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

是我的芯片出现问题,就此结贴
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2019-4-19
在线时间
13 小时
 楼主| 发表于 2019-4-30 18:58:00 | 显示全部楼层
是我的芯片出现问题,就此结贴
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2019-4-30 19:05:30 | 显示全部楼层
485,使能引脚没有设置拉低?
一分耕耘一分收获。
回复

使用道具 举报

6

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2019-4-19
在线时间
13 小时
 楼主| 发表于 2019-5-5 11:11:20 | 显示全部楼层
yklstudent 发表于 2019-4-30 19:05
485,使能引脚没有设置拉低?

这个485芯片具有自动选向控制功能,现在能发数据,就是不能进入中断
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 20:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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