娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年06月15日(星期日)

2018年06月15日 | stm32初始化三個串口

發(fā)布者:EtherealEssence 來源: eefocus關(guān)鍵字:stm32  初始化  三個串口 手機看文章 掃描二維碼
隨時隨地手機看文章

serial.c

 #include "serial.h"    

    

int fputc(int ch,FILE *p)       //在使用printf時系統(tǒng)自動條用此函數(shù)    

{    

    USART_SendData(USART2,(u8)ch);      

    while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET);    

    return ch;    

        

}    

/*******************************************************************************  

* 函 數(shù) 名         : serial_init  

* 函數(shù)功能         : IO端口及串口1,時鐘初始化函數(shù)    A9,A10    

* 輸    入         : 無  

* 輸    出         : 無  

*******************************************************************************/    

void serial1_init(u32 bt)    

{    

    GPIO_InitTypeDef GPIO_InitStructure;    //聲明一個結(jié)構(gòu)體變量,用來初始化GPIO    

    NVIC_InitTypeDef NVIC_InitStructure;     //中斷結(jié)構(gòu)體定義    

    USART_InitTypeDef  USART_InitStructure;   //串口結(jié)構(gòu)體定義    

    

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1|RCC_APB2Periph_AFIO,ENABLE);    

    

    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;//TX    

    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;    

    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;    

    GPIO_Init(GPIOA,&GPIO_InitStructure);    

    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;//RX    

    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;    

    GPIO_Init(GPIOA,&GPIO_InitStructure);    

     

    

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);     

    NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;     

    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;     

    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;     

    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;     

    NVIC_Init(&NVIC_InitStructure);    

    

    

    USART_InitStructure.USART_BaudRate=bt;   //波特率設(shè)置為bt    

    USART_InitStructure.USART_WordLength=USART_WordLength_8b;    

    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(USART1,&USART_InitStructure);    

    USART_Cmd(USART1, ENABLE);    

    USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//使能或者失能指定的USART中斷 接收中斷    

    USART_ClearFlag(USART1,USART_FLAG_TC);//清除USARTx的待處理標(biāo)志位     

}    

    

/*******************************************************************************  

* 函 數(shù) 名         : serial2_init  

* 函數(shù)功能         : IO端口及串口2,時鐘初始化函數(shù)     A2,A3   

* 輸    入         : 無  

* 輸    出         : 無  

*******************************************************************************/    

void serial2_init(u32 bt)    

{    

     USART_InitTypeDef USART_InitStructure;    

  NVIC_InitTypeDef NVIC_InitStructure;     

    GPIO_InitTypeDef GPIO_InitStructure;    //聲明一個結(jié)構(gòu)體變量,用來初始化GPIO    

   //使能串口的RCC時鐘    

   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE); //使能UART3所在GPIOB的時鐘    

   RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);    

    

   //串口使用的GPIO口配置    

   // Configure USART2 Rx (PB.11) as input floating      

   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;    

   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;    

   GPIO_Init(GPIOA, &GPIO_InitStructure);    

    

   // Configure USART2 Tx (PB.10) as alternate function push-pull    

   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;    

   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    

   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;    

   GPIO_Init(GPIOA, &GPIO_InitStructure);    

    

   //配置串口    

   USART_InitStructure.USART_BaudRate = bt;    

   USART_InitStructure.USART_WordLength = USART_WordLength_8b;    

   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;    

    

    

   // Configure USART3     

   USART_Init(USART2, &USART_InitStructure);//配置串口3    

    

  // Enable USART1 Receive interrupts 使能串口接收中斷    

   USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);    

   //串口發(fā)送中斷在發(fā)送數(shù)據(jù)時開啟    

   //USART_ITConfig(USART2, USART_IT_TXE, ENABLE);    

    

   // Enable the USART3     

   USART_Cmd(USART2, ENABLE);//使能串口3    

    

   //串口中斷配置    

   //Configure the NVIC Preemption Priority Bits       

   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);    

    

   // Enable the USART3 Interrupt     

   NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;    

   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;    

   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;    

   NVIC_Init(&NVIC_InitStructure);    

}    

  

    

/*******************************************************************************  

* 函 數(shù) 名         : serial3_init  

* 函數(shù)功能         : IO端口及串口3,時鐘初始化函數(shù)   B10,B11     

* 輸    入         : 無  

* 輸    出         : 無  

*******************************************************************************/    

void serial3_init(u32 bt)    

    

{    

    USART_InitTypeDef USART_InitStructure;    

  NVIC_InitTypeDef NVIC_InitStructure;     

    GPIO_InitTypeDef GPIO_InitStructure;    //聲明一個結(jié)構(gòu)體變量,用來初始化GPIO    

   //使能串口的RCC時鐘    

   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE); //使能UART3所在GPIOB的時鐘    

   RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);    

    

   //串口使用的GPIO口配置    

   // Configure USART2 Rx (PB.11) as input floating      

   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;    

   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;    

   GPIO_Init(GPIOB, &GPIO_InitStructure);    

    

   // Configure USART2 Tx (PB.10) as alternate function push-pull    

   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;    

   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    

   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;    

   GPIO_Init(GPIOB, &GPIO_InitStructure);    

    

   //配置串口    

   USART_InitStructure.USART_BaudRate = bt;    

   USART_InitStructure.USART_WordLength = USART_WordLength_8b;    

   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;    

    

    

   // Configure USART3     

   USART_Init(USART3, &USART_InitStructure);//配置串口3    

    

  // Enable USART1 Receive interrupts 使能串口接收中斷    

   USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);    

   //串口發(fā)送中斷在發(fā)送數(shù)據(jù)時開啟    

   //USART_ITConfig(USART2, USART_IT_TXE, ENABLE);    

    

   // Enable the USART3     

   USART_Cmd(USART3, ENABLE);//使能串口3    

    

   //串口中斷配置    

   //Configure the NVIC Preemption Priority Bits       

   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);    

    

   // Enable the USART3 Interrupt     

   NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;    

   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;    

   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;    

   NVIC_Init(&NVIC_InitStructure);    

        

        

}    

    

     

    

    

/*******************************************************************************  

* 函 數(shù) 名         : serial1_sned_char  

* 函數(shù)功能         : 串口1發(fā)送一字節(jié)        

* 輸    入         : 無  

* 輸    出         : 無  

*******************************************************************************/    

void serial1_sned_char(u8 temp)    

        

{    

        

        

    USART_SendData(USART1,(u8)temp);        

    while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);    

        

}    

    

/*******************************************************************************  

* 函 數(shù) 名         : serial1_sned_buff  

* 函數(shù)功能         : 串口1發(fā)送一字符串       

* 輸    入         : 無  

* 輸    出         : 無  

*******************************************************************************/    

void serial1_sned_buff(u8 buf[],u32 len)    

        

{    

    u32 i;    

    for(i=0;i

    serial1_sned_char(buf[i]);    

        

}    

    

    

    

/*******************************************************************************  

* 函 數(shù) 名         : serial2_sned_char  

* 函數(shù)功能         : 串口2發(fā)送一字節(jié)        

* 輸    入         : 無  

* 輸    出         : 無  

*******************************************************************************/    

void serial2_sned_char(u8 temp)    

        

{    

        

    USART_SendData(USART2,(u8)temp);        

    while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET);    

        

}    

    

    

    

/*******************************************************************************  

* 函 數(shù) 名         : serial2_sned_buff  

* 函數(shù)功能         : 串口2發(fā)送一字符串       

* 輸    入         : 無  

* 輸    出         : 無  

*******************************************************************************/    

void serial2_sned_buff(u8 buf[],u32 len)    

        

    

{    

    u32 i;    

    for(i=0;i

    serial2_sned_char(buf[i]);    

        

        

}    

    

//--------------------------------------------------------------------------------------------------------    

  

    

/*******************************************************************************  

* 函 數(shù) 名         : serial3_sned_char  

* 函數(shù)功能         : 串口3發(fā)送一字節(jié)        

* 輸    入         : 無  

* 輸    出         : 無  

*******************************************************************************/    

void serial3_sned_char(u8 temp)    

        

{    

    USART_SendData(USART3,(u8)temp);        

    while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==RESET);    

        

}    

    

    

    

/*******************************************************************************  

* 函 數(shù) 名         : serial3_sned_buff  

* 函數(shù)功能         : 串口3發(fā)送一字符串       

* 輸    入         : 無  

* 輸    出         : 無  

*******************************************************************************/    

void serial3_sned_buff(u8 buf[],u32 len)    

        

    

{    

    u32 i;    

    for(i=0;i

    serial3_sned_char(buf[i]);    

            

serial.h

**************************************************/  

  

#ifndef _serial_  

#define _serial_  

  

#include "stm32f10x.h"  

#include "stdio.h"  

  

  

//------------------------------------------------------------------------------------------  

  

/******************************************************************************* 

* 函 數(shù) 名         : fputc 

* 函數(shù)功能         : printf會調(diào)用 

* 輸    入         : 無 

* 輸    出         : 無 

*******************************************************************************/  

int fputc(int ch,FILE *p);  

  

/******************************************************************************* 

* 函 數(shù) 名         : serial1_init 

* 函數(shù)功能         : IO端口及串口1,時鐘初始化函數(shù)       

* 輸    入         : 無 

* 輸    出         : 無 

*******************************************************************************/  

void serial1_init(u32 bt);  

  

  

/******************************************************************************* 

* 函 數(shù) 名         : serial1_sned_char 

* 函數(shù)功能         : 串口1發(fā)送一字節(jié)       

* 輸    入         : 無 

* 輸    出         : 無 

*******************************************************************************/  

void serial1_sned_char(u8 temp);  

  

  

/******************************************************************************* 

* 函 數(shù) 名         : serial1_sned_buff 

* 函數(shù)功能         : 串口1發(fā)送一字符串      

* 輸    入         : 無 

* 輸    出         : 無 

*******************************************************************************/  

void serial1_sned_buff(u8 buf[],u32 len);  

  

//-----------------------------------------------------------------------------------------------------  

  

/******************************************************************************* 

* 函 數(shù) 名         : serial2_init 

* 函數(shù)功能         : IO端口及串口2,時鐘初始化函數(shù)       

* 輸    入         : 無 

* 輸    出         : 無 

*******************************************************************************/  

void serial2_init(u32 bt);  

  

  

  

/******************************************************************************* 

* 函 數(shù) 名         : serial2_sned_char 

* 函數(shù)功能         : 串口2發(fā)送一字節(jié)       

* 輸    入         : 無 

* 輸    出         : 無 

*******************************************************************************/  

void serial2_sned_char(u8 temp);  

  

  

  

/******************************************************************************* 

* 函 數(shù) 名         : serial2_sned_buff 

* 函數(shù)功能         : 串口2發(fā)送一字符串      

* 輸    入         : 無 

* 輸    出         : 無 

*******************************************************************************/  

void serial2_sned_buff(u8 buf[],u32 len);  

  

  

//--------------------------------------------------------------------------------------------------------  

  

/******************************************************************************* 

* 函 數(shù) 名         : serial3_init 

* 函數(shù)功能         : IO端口及串口3,時鐘初始化函數(shù)       

* 輸    入         : 無 

* 輸    出         : 無 

*******************************************************************************/  

void serial3_init(u32 bt);  

  

  

  

/******************************************************************************* 

* 函 數(shù) 名         : serial3_sned_char 

* 函數(shù)功能         : 串口3發(fā)送一字節(jié)       

* 輸    入         : 無 

* 輸    出         : 無 

*******************************************************************************/  

void serial3_sned_char(u8 temp);  

  

  

  

/******************************************************************************* 

* 函 數(shù) 名         : serial3_sned_buff 

* 函數(shù)功能         : 串口3發(fā)送一字符串      

* 輸    入         : 無 

* 輸    出         : 無 

*******************************************************************************/  

void serial3_sned_buff(u8 buf[],u32 len);  


串口中斷函數(shù)處理部分

void USART1_IRQHandler(void)  

{  

  

    USART_ClearFlag(USART1,USART_FLAG_TC);  

    if(USART_GetITStatus(USART1,USART_IT_RXNE)!=Bit_RESET)//檢查指定的USART中斷發(fā)生與否  

    {  

          

    u8  k=USART_ReceiveData(USART1);  

    serial1_sned_char(k+1);  

      

    }  

      

}  

  

void USART2_IRQHandler(void)  

{  

        USART_ClearFlag(USART2,USART_FLAG_TC);  

    if(USART_GetITStatus(USART2,USART_IT_RXNE)!=Bit_RESET)//檢查指定的USART中斷發(fā)生與否  

    {  

          

    u8  k=USART_ReceiveData(USART2);  

          

    serial1_sned_char(k+1);  

      

    }  

      

}  

  

void USART3_IRQHandler(void)  

{  

        USART_ClearFlag(USART3,USART_FLAG_TC);  

    if(USART_GetITStatus(USART3,USART_IT_RXNE)!=Bit_RESET)//檢查指定的USART中斷發(fā)生與否  

    {  

          

    u8  k=USART_ReceiveData(USART3);  

    serial1_sned_char(k+1);  

      

    }  

      

}  



關(guān)鍵字:stm32  初始化  三個串口 引用地址:stm32初始化三個串口

上一篇:STM32啟動后系統(tǒng)初始化SystemInit()
下一篇:STM32 TIMER初始化步驟

推薦閱讀

CES ASIA 2018于6月13號在上海召開,和近年來很多電子類展會一樣,智慧、智能逐漸成為展會的唯一主題,只是落實到不同的應(yīng)用場景中而已。在消費電子領(lǐng)域,隨著智能音箱這一現(xiàn)象級產(chǎn)品的出現(xiàn),讓產(chǎn)業(yè)界看到人工智能在消費領(lǐng)域爆發(fā)的可能性,自然,人工智能也成為此次CES ASIA上熱點中的熱點。國內(nèi)人工智能新貴地平線、寒武紀(jì)、誠邁科技、圓周率、星行科...
“中國在無人機市場幾大領(lǐng)域處于領(lǐng)先地位,包括無人機制造與生產(chǎn)。瑞士則在傳感分析等領(lǐng)域扮演先鋒角色并與中國互補,為商業(yè)和研發(fā)領(lǐng)合作創(chuàng)造了許多獨特的機遇,”瑞士駐華大使Bernardino Regazzoni羅志誼說,“許多人可能會驚訝地發(fā)現(xiàn),瑞士在無人機核心技術(shù)與高端應(yīng)用領(lǐng)域的發(fā)展如此先進。”6月14日,筆者受瑞士駐華大使館邀請,參加瑞士駐華大使館于20...
6月14日,創(chuàng)業(yè)板改革迎來新進展,明日起深交所將開始受理創(chuàng)業(yè)板在審企業(yè)的首次公開發(fā)行股票、再融資、并購重組申請;證監(jiān)會將組織深交所、中國結(jié)算等單位扎實推進審核注冊、市場組織、技術(shù)準(zhǔn)備等工作,落實好創(chuàng)業(yè)板改革并試點注冊制工作。日前,證監(jiān)會發(fā)布了《創(chuàng)業(yè)板首次公開發(fā)行股票注冊管理辦法(試行)》等一系列創(chuàng)業(yè)板改革并試點注冊制的相關(guān)制度規(guī)則...
全球AMR引領(lǐng)者極智嘉(Geek+)近日宣布與OK便利店(Circle K Hong Kong)達成合作,在位于中國香港的全新OK便利店物流配送中心部署100臺極智嘉AMR機器人,全面提升倉庫物流效率,助力OK便利店為消費者提供多元化的產(chǎn)品及更優(yōu)質(zhì)的服務(wù)。OK便利店全新物流配送中心總面積超13000平方米,為中國香港超300間OK便利店提供在售商品,滿足全港每天60萬名顧客的需求...

史海拾趣

問答坊 | AI 解惑

畫電路圖一般用什么軟件啊?(新手)

畫電路圖一般用什么軟件啊?我們做實驗報告的時候要用到…

查看全部問答∨

誰能傳個 單容水箱液位控制系統(tǒng) 謝謝

單容水箱液位控制系統(tǒng)就行! 有原理圖,原理和程序,謝謝!…

查看全部問答∨

用單片機控制手機收發(fā)短信息

摘要:介紹用MCS-51系列單片機控制手機收發(fā)短信息的原理、硬件電路、PDU數(shù)據(jù)格式和符合GSM07.05協(xié)議要求的短信息發(fā)送/接收程序,同時給出了一個應(yīng)用實例。     關(guān)鍵詞:單片機 短信息 PDU GSM 接口 GSM(Global System for Mobile comm ...…

查看全部問答∨

那位高手能幫忙解決一下s3c2410的spi口讀寫無線模塊cc2420的問題??

我的問題主要是spi口到底是用查詢方式還是中斷方式。由于水平有限本人用了查詢方式。 下面是主要的程序: /************************************************* SPI low lever fuctions **********************************************/ void ...…

查看全部問答∨

關(guān)于spi的一個問題

我用的是三星的2440,在用spi對外設(shè)進行配置時,用示波器觀察輸出波形,發(fā)現(xiàn)nSS信號始終是高電平,數(shù)據(jù)信號和始終信號的波形都是對的。 問下大家,這個nSS我們怎么控制?還是說2440配置位master后,nSS是cpu自動控制的? PS:我現(xiàn)在的做法是將nSS ...…

查看全部問答∨

WCE驅(qū)動調(diào)試

各位英雄:      我的目標(biāo)板已經(jīng)固化了內(nèi)核,但調(diào)試發(fā)現(xiàn)其中有一個驅(qū)動有問題,需要修改,但不想修改后重新編譯內(nèi)核并下載固化;能不能在PB中編譯驅(qū)動后,把新的驅(qū)動dll文件直接替換目標(biāo)機中的同名dll?如果可以,同名dll在何 ...…

查看全部問答∨

困擾我很久的問題~~~定散分

假設(shè)我現(xiàn)在有一個基于Arm核的單片機,并且有了一個基于這款單片機的開發(fā)平臺。現(xiàn)在想增加一塊多媒體芯片(比如中芯微968或者簡單些的芯片)來擴展一些功能,接線配置方面的事情我已經(jīng)做好了,假設(shè)我用CS3作為片選。我不解的是:我用什么方法來讀寫多 ...…

查看全部問答∨

老師的IIC 程序 拿來看看

先把老師的程序?qū)懙竭@里,慢慢研讀,#include <string.h>#include \"..\\inc\\44b.h\"#include \"..\\inc\\44blib.h\"#include \"..\\inc\\iic.h\"volatile int f_nGetACK;//獲取中斷響應(yīng)標(biāo)志//初始化IIC接口void Iic_init(void){ rIICCON=(1 ...…

查看全部問答∨

關(guān)于msp430g2553的硬件串口問題

有誰有沒有硬件串口寄存器的詳細解釋呀,手冊上說的不一樣呀。寫過的給個程序例子吧,看了手冊,在看頭文件我就迷茫了。。。。…

查看全部問答∨

哪位前輩給小弟簡單系統(tǒng)的介紹一下STM32啊。

它跟51有什么區(qū)別啊。跟AVR又有什么區(qū)別啊。謝謝了。…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 光山县| 永年县| 石城县| 丰县| 四会市| 兴业县| 新蔡县| 锡林浩特市| 内乡县| 扶风县| 旬邑县| 英超| 探索| 黄平县| 区。| 高要市| 桃源县| 灵武市| 阿图什市| 玉环县| 临海市| 姜堰市| 桂林市| 仁怀市| 临朐县| 闸北区| 和田县| 荣昌县| 资源县| 瑞昌市| 东辽县| 和政县| 陆河县| 衢州市| 公主岭市| 盐城市| 宣武区| 铜梁县| 台安县| 葵青区| 临沧市|