新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32的串口通信

        STM32的串口通信

        作者: 時間:2016-11-17 來源:網絡 收藏
        STM32串口通信
        在基礎實驗成功的基礎上,對串口的調試方法進行實踐。硬件代碼順利完成之后,對日后調試需要用到的printf重定義進行調試,固定在自己的庫函數中。
        b) 初始化函數定義:
        void USART_Configuration(void); //定義串口初始化函數
        c) 初始化函數調用:
        void UART_Configuration(void); //串口初始化函數調用
        初始化代碼:
        void USART_Configuration(void) //串口初始化函數
        {
        //串口參數初始化
        USART_InitTypeDef USART_InitStructure; //串口設置恢復默認參數
        //初始化參數設置
        USART_InitStructure.USART_BaudRate = 9600; //波特率9600
        USART_InitStructure.USART_WordLength = USART_WordLength_8b; //字長8位
        USART_InitStructure.USART_StopBits = USART_StopBits_1; //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;//打開Rx接收和Tx發送功能
        USART_Init(USART1, &USART_InitStructure); //初始化
        USART_Cmd(USART1, ENABLE); //啟動串口
        }
        RCC中打開相應串口
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 , ENABLE);
        GPIO里面設定相應串口管腳模式
        //串口1的管腳初始化
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //管腳9
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //復用推挽輸出
        GPIO_Init(GPIOA, &GPIO_InitStructure); //TX初始化
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //管腳10
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空輸入
        GPIO_Init(GPIOA, &GPIO_InitStructure); //RX初始化
        d) 簡單應用:
        發送一位字符
        USART_SendData(USART1, 數據); //發送一位數據
        while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET){} //等待發送完畢
        接收一位字符
        while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET){} //等待接收完畢
        變量= (USART_ReceiveData(USART1)); //接受一個字節
        發送一個字符串
        先定義字符串:char rx_data[250];
        然后在需要發送的地方添加如下代碼
        int i; //定義循環變量
        while(rx_data!= 主站蜘蛛池模板: 万载县| 新宾| 惠来县| 景德镇市| 黄浦区| 承德市| 茌平县| 大埔区| 寻乌县| 南华县| 六枝特区| 汕尾市| 怀化市| 乐业县| 崇左市| 洛阳市| 防城港市| 鹤峰县| 岑溪市| 石狮市| 岳阳市| 抚远县| 阿克陶县| 太白县| 鹤壁市| 朝阳区| 静宁县| 娄底市| 上饶市| 汉中市| 田阳县| 关岭| 仁化县| 乌什县| 民县| 城口县| 西盟| 二连浩特市| 永济市| 铁力市| 景德镇市|