找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8134|回復(fù): 11
收起左側(cè)

STM32F103 USART3接收不到數(shù)據(jù)

[復(fù)制鏈接]
ID:79697 發(fā)表于 2018-8-28 13:50 | 顯示全部樓層 |閱讀模式
#include "usart.h"                 

/*******************************************************************************
* 函 數(shù) 名         : USART1_Init
* 函數(shù)功能                   : USART1初始化函數(shù)
* 輸    入         : bound:波特率
* 輸    出         : 無
*******************************************************************************/
void USART3_Init(u32 bound)
{
   //GPIO端口設(shè)置
        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;            //復(fù)用推挽輸出
        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 初始化設(shè)置
        USART_InitStructure.USART_BaudRate = bound;//波特率設(shè)置
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字長為8位數(shù)據(jù)格式
        USART_InitStructure.USART_StopBits = USART_StopBits_1;//一個停止位
        USART_InitStructure.USART_Parity = USART_Parity_No;//無奇偶校驗位
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無硬件數(shù)據(jù)流控制
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;        //收發(fā)模式
        USART_Init(USART3, &USART_InitStructure); //初始化串口1
       
        USART_Cmd(USART3, ENABLE);  //使能串口1
       
        USART_ClearFlag(USART3, USART_FLAG_TC);
               
        USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);//開啟相關(guān)中斷

        //Usart1 NVIC 配置
        NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;//串口1中斷通道
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;//搶占優(yōu)先級3
        NVIC_InitStructure.NVIC_IRQChannelSubPriority =3;                //子優(yōu)先級3
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        //IRQ通道使能
        NVIC_Init(&NVIC_InitStructure);        //根據(jù)指定的參數(shù)初始化VIC寄存器、       
}

/*******************************************************************************
* 函 數(shù) 名         : USART1_IRQHandler
* 函數(shù)功能                   : USART1中斷函數(shù)
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/
void USART3_IRQHandler(void)                        //串口1中斷服務(wù)程序
{
        u8 r;
        if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)  //接收中斷
        {
                r =USART_ReceiveData(USART3);//(USART1->DR);        //讀取接收到的數(shù)據(jù)
                USART_SendData(USART3,r);
                while(USART_GetFlagStatus(USART3,USART_FLAG_TC) != SET);
        }
        USART_ClearFlag(USART3,USART_FLAG_TC);
}        


把usart1改成usart3,就接收不到數(shù)據(jù)了

回復(fù)

使用道具 舉報

ID:79697 發(fā)表于 2018-8-28 13:51 | 顯示全部樓層
請大神們指點一下,謝謝
回復(fù)

使用道具 舉報

ID:79697 發(fā)表于 2018-8-28 14:30 | 顯示全部樓層
請大神們指點一下,謝謝
回復(fù)

使用道具 舉報

ID:390820 發(fā)表于 2018-8-28 15:55 | 顯示全部樓層
直接下載原子的例程
回復(fù)

使用道具 舉報

ID:390828 發(fā)表于 2018-8-28 15:58 | 顯示全部樓層
GPIO管腳等你有沒有相應(yīng)的修改先?
回復(fù)

使用道具 舉報

ID:79697 發(fā)表于 2018-8-30 10:17 | 顯示全部樓層
b516gf 發(fā)表于 2018-8-28 15:58
GPIO管腳等你有沒有相應(yīng)的修改先?

把串口1修改成了串口3
回復(fù)

使用道具 舉報

ID:79697 發(fā)表于 2018-8-30 10:17 | 顯示全部樓層

歷程是串口1,想用串口3,修改之后不可以
回復(fù)

使用道具 舉報

ID:384109 發(fā)表于 2018-8-30 10:51 | 顯示全部樓層
接收引腳應(yīng)該設(shè)置成內(nèi)部上拉吧,設(shè)置成懸空,如果外部沒有上,下拉電阻,引腳狀態(tài)應(yīng)該不穩(wěn)定
回復(fù)

使用道具 舉報

ID:325720 發(fā)表于 2018-10-27 16:31 | 顯示全部樓層
找到問題了嗎??謝謝
回復(fù)

使用道具 舉報

ID:385318 發(fā)表于 2018-10-28 10:11 | 顯示全部樓層
改一下優(yōu)先級分組
回復(fù)

使用道具 舉報

ID:142699 發(fā)表于 2019-11-4 19:40 | 顯示全部樓層
樓主解決了么,我也碰到這個問題
回復(fù)

使用道具 舉報

ID:615301 發(fā)表于 2020-1-21 03:06 | 顯示全部樓層
人中狼 發(fā)表于 2018-8-30 10:51
接收引腳應(yīng)該設(shè)置成內(nèi)部上拉吧,設(shè)置成懸空,如果外部沒有上,下拉電阻,引腳狀態(tài)應(yīng)該不穩(wěn)定

大佬牛逼!困惑了我一個星期的問題
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表