找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7427|回复: 11
收起左侧

STM32F103 USART3接收不到数据

[复制链接]
ID:79697 发表于 2018-8-28 13:50 | 显示全部楼层 |阅读模式
#include "usart.h"                 

/*******************************************************************************
* 函 数 名         : USART1_Init
* 函数功能                   : USART1初始化函数
* 输    入         : bound:波特率
* 输    出         : 无
*******************************************************************************/
void USART3_Init(u32 bound)
{
   //GPIO端口设置
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO , ENABLE);
       
        /*  配置GPIO的模式和IO口 */
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;//TX                           //串口输出PA9
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;            //复用推挽输出
        GPIO_Init(GPIOB,&GPIO_InitStructure);  /* 初始化串口输入IO */
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;//RX                         //串口输入PA10
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;                  //模拟输入
        GPIO_Init(GPIOB,&GPIO_InitStructure); /* 初始化GPIO */
       

   //USART1 初始化设置
        USART_InitStructure.USART_BaudRate = bound;//波特率设置
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式
        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); //初始化串口1
       
        USART_Cmd(USART3, ENABLE);  //使能串口1
       
        USART_ClearFlag(USART3, USART_FLAG_TC);
               
        USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);//开启相关中断

        //Usart1 NVIC 配置
        NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;//串口1中断通道
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;//抢占优先级3
        NVIC_InitStructure.NVIC_IRQChannelSubPriority =3;                //子优先级3
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        //IRQ通道使能
        NVIC_Init(&NVIC_InitStructure);        //根据指定的参数初始化VIC寄存器、       
}

/*******************************************************************************
* 函 数 名         : USART1_IRQHandler
* 函数功能                   : USART1中断函数
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void USART3_IRQHandler(void)                        //串口1中断服务程序
{
        u8 r;
        if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)  //接收中断
        {
                r =USART_ReceiveData(USART3);//(USART1->DR);        //读取接收到的数据
                USART_SendData(USART3,r);
                while(USART_GetFlagStatus(USART3,USART_FLAG_TC) != SET);
        }
        USART_ClearFlag(USART3,USART_FLAG_TC);
}        


把usart1改成usart3,就接收不到数据了

回复

使用道具 举报

ID:79697 发表于 2018-8-28 13:51 | 显示全部楼层
请大神们指点一下,谢谢
回复

使用道具 举报

ID:79697 发表于 2018-8-28 14:30 | 显示全部楼层
请大神们指点一下,谢谢
回复

使用道具 举报

ID:390820 发表于 2018-8-28 15:55 | 显示全部楼层
直接下载原子的例程
回复

使用道具 举报

ID:390828 发表于 2018-8-28 15:58 | 显示全部楼层
GPIO管脚等你有没有相应的修改先?
回复

使用道具 举报

ID:79697 发表于 2018-8-30 10:17 | 显示全部楼层
b516gf 发表于 2018-8-28 15:58
GPIO管脚等你有没有相应的修改先?

把串口1修改成了串口3
回复

使用道具 举报

ID:79697 发表于 2018-8-30 10:17 | 显示全部楼层
252193666@qq.co 发表于 2018-8-28 15:55
直接下载原子的例程

历程是串口1,想用串口3,修改之后不可以
回复

使用道具 举报

ID:384109 发表于 2018-8-30 10:51 | 显示全部楼层
接收引脚应该设置成内部上拉吧,设置成悬空,如果外部没有上,下拉电阻,引脚状态应该不稳定
回复

使用道具 举报

ID:325720 发表于 2018-10-27 16:31 | 显示全部楼层
找到问题了吗??谢谢
回复

使用道具 举报

ID:385318 发表于 2018-10-28 10:11 | 显示全部楼层
改一下优先级分组
回复

使用道具 举报

ID:142699 发表于 2019-11-4 19:40 | 显示全部楼层
楼主解决了么,我也碰到这个问题
回复

使用道具 举报

ID:615301 发表于 2020-1-21 03:06 | 显示全部楼层
人中狼 发表于 2018-8-30 10:51
接收引脚应该设置成内部上拉吧,设置成悬空,如果外部没有上,下拉电阻,引脚状态应该不稳定

大佬牛逼!困惑了我一个星期的问题
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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