在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

  • <object id="1jp1h"></object>
    <address id="1jp1h"><nav id="1jp1h"></nav></address>
  • <label id="1jp1h"></label>
    
    

    <bdo id="1jp1h"></bdo>

    新聞中心

    STM32的串口通信

    作者: 時(shí)間:2016-11-17 來(lái)源:網(wǎng)絡(luò) 收藏
    STM32串口通信
    在基礎(chǔ)實(shí)驗(yàn)成功的基礎(chǔ)上,對(duì)串口的調(diào)試方法進(jìn)行實(shí)踐。硬件代碼順利完成之后,對(duì)日后調(diào)試需要用到的printf重定義進(jìn)行調(diào)試,固定在自己的庫(kù)函數(shù)中。
    b) 初始化函數(shù)定義:
    void USART_Configuration(void); //定義串口初始化函數(shù)
    c) 初始化函數(shù)調(diào)用:
    void UART_Configuration(void); //串口初始化函數(shù)調(diào)用
    初始化代碼:
    void USART_Configuration(void) //串口初始化函數(shù)
    {
    //串口參數(shù)初始化
    USART_InitTypeDef USART_InitStructure; //串口設(shè)置恢復(fù)默認(rèn)參數(shù)
    //初始化參數(shù)設(shè)置
    USART_InitStructure.USART_BaudRate = 9600; //波特率9600
    USART_InitStructure.USART_WordLength = USART_WordLength_8b; //字長(zhǎng)8位
    USART_InitStructure.USART_StopBits = USART_StopBits_1; //1位停止字節(jié)
    USART_InitStructure.USART_Parity = USART_Parity_No; //無(wú)奇偶校驗(yàn)
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無(wú)流控制
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//打開(kāi)Rx接收和Tx發(fā)送功能
    USART_Init(USART1, &USART_InitStructure); //初始化
    USART_Cmd(USART1, ENABLE); //啟動(dòng)串口
    }
    RCC中打開(kāi)相應(yīng)串口
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 , ENABLE);
    GPIO里面設(shè)定相應(yīng)串口管腳模式
    //串口1的管腳初始化
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //管腳9
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //復(fù)用推挽輸出
    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) 簡(jiǎn)單應(yīng)用:
    發(fā)送一位字符
    USART_SendData(USART1, 數(shù)據(jù)); //發(fā)送一位數(shù)據(jù)
    while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET){} //等待發(fā)送完畢
    接收一位字符
    while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET){} //等待接收完畢
    變量= (USART_ReceiveData(USART1)); //接受一個(gè)字節(jié)
    發(fā)送一個(gè)字符串
    先定義字符串:char rx_data[250];
    然后在需要發(fā)送的地方添加如下代碼
    int i; //定義循環(huán)變量
    while(rx_data!=