新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM32筆記之八:來跟PC打個招呼,基本串口通訊

        STM32筆記之八:來跟PC打個招呼,基本串口通訊

        作者: 時間:2016-11-26 來源:網絡 收藏
        a)目的:在基礎實驗成功的基礎上,對串口的調試方法進行實踐。硬件代碼順利完成之后,對日后調試需要用到的printf重定義進行調試,固定在自己的庫函數中。

        b)初始化函數定義:

        本文引用地址:http://www.104case.com/article/201611/322074.htm

        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位停止字節(jié)

        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發(fā)送功能

        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)簡單應用:

        發(fā)送一位字符

        USART_SendData(USART1,數據);//發(fā)送一位數據

        while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET){}//等待發(fā)送完畢

        接收一位字符

        while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET){}//等待接收完畢

        變量= (USART_ReceiveData(USART1));//接受一個字節(jié)

        發(fā)送一個字符串

        先定義字符串:char rx_data[250];

        然后在需要發(fā)送的地方添加如下代碼

        int i;//定義循環(huán)變量

        while(rx_data!=

        主站蜘蛛池模板: 孟津县| 大关县| 蓬溪县| 遂宁市| 新昌县| 琼中| 扬中市| 六枝特区| 怀集县| 泾川县| 嘉荫县| 长宁县| 景德镇市| 荥经县| 唐山市| 长治市| 武乡县| 体育| 保德县| 永年县| 固原市| 民勤县| 绵竹市| 黔西县| 资兴市| 丹阳市| 阿合奇县| 大足县| 瑞安市| 黎城县| 巴南区| 松阳县| 论坛| 仁布县| 深泽县| 婺源县| 巴塘县| 娄烦县| 扶绥县| 普陀区| 都昌县|