日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

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

2019年08月06日 | STM32的串口配置代碼

發(fā)布者:靈感火花 來源: eefocus關(guān)鍵字:STM32  串口  配置代碼 手機看文章 掃描二維碼
隨時隨地手機看文章

一、串口一的配置(初始化+中斷配置+中斷接收函數(shù))


  1 /*===============================================================================

  2 Copyright:

  3 Version:

  4 Author:    

  5 Date: 2017/11/3

  6 Description:

  7     配置獨立看門狗初始化函數(shù),在主函數(shù)中運行IWDG_ReloadCounter進行喂狗主函數(shù)必須在4s內(nèi)進行一次喂狗不然系統(tǒng)會復(fù)位;

  8     函數(shù)功能是將接收固定長度的字符串,并將接收后的字符串通過串口發(fā)送出去

  9 revise Description:

 10 ===============================================================================*/

 11 #include "stm32f10x_usart.h"

 12 #include "stm32f10x.h"

 13 #include "stm32f10x_iwdg.h"

 14 

 15 u8 USART1_RX_BUF[21]; 

 16 u8 USART1_RX_CNT=0;

 17 

 18 void IWDG_Configuration(void); 

 19 

 20 void Usart1_Init(u32 bound)

 21 {

 22     //GPIO端口設(shè)置

 23     GPIO_InitTypeDef GPIO_InitStructure;

 24     USART_InitTypeDef USART_InitStructure;

 25     NVIC_InitTypeDef NVIC_InitStructure;

 26      

 27     RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC, ENABLE);//使能USART1,GPIOA,C時鐘

 28       

 29     //USART1_TX   GPIOA.9

 30     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9

 31     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

 32     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;    //復(fù)用推挽輸出

 33     GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9

 34 

 35     //USART1_RX      GPIOA.10初始化

 36     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10

 37     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空輸入

 38     GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10  

 39 

 40     //Usart1 NVIC 配置

 41     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);    //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級   0-3;

 42     

 43     NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;

 44     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//搶占優(yōu)先級3

 45     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;        //子優(yōu)先級3

 46     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;            //IRQ通道使能

 47     NVIC_Init(&NVIC_InitStructure);    //根據(jù)指定的參數(shù)初始化VIC寄存器

 48   

 49    //USART 初始化設(shè)置

 50 

 51     USART_InitStructure.USART_BaudRate = bound;//串口波特率

 52     USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字長為8位數(shù)據(jù)格式

 53     USART_InitStructure.USART_StopBits = USART_StopBits_1;//一個停止位

 54     USART_InitStructure.USART_Parity = USART_Parity_No;//無奇偶校驗位

 55     USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無硬件數(shù)據(jù)流控制

 56     USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;    //收發(fā)模式

 57 

 58     USART_Init(USART1, &USART_InitStructure); //初始化串口1

 59     USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//開啟串口接受中斷

 60     USART_Cmd(USART1, ENABLE);                    //使能串口1 

 61 }

 62 /**

 63 * USART1發(fā)送len個字節(jié).

 64 * buf:發(fā)送區(qū)首地址

 65 * len:發(fā)送的字節(jié)數(shù)(為了和本代碼的接收匹配,這里建議不要超過64個字節(jié))

 66 **/

 67 void USART1_Send_Data(u8 *buf,u16 len)

 68 {

 69     u16 t;

 70     GPIO_SetBits(GPIOC,GPIO_Pin_9);

 71 //  RS485_TX_EN=1;            //設(shè)置為發(fā)送模式

 72     for(t=0;t 73     {           

 74         while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET); //循環(huán)發(fā)送,直到發(fā)送完畢   

 75         USART_SendData(USART1,buf[t]); 

 76     }     

 77     while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);        

 78     GPIO_ResetBits(GPIOC,GPIO_Pin_9);

 79 //    RS485_TX_EN=0;                //設(shè)置為接收模式    

 80 }

 81 void main(void)

 82 {

 83     Usart1_Init(9600);//串口1波特率設(shè)置為9600

 84     IWDG_Configuration();

 85     while(1)

 86     {

 87         IWDG_ReloadCounter();//4s內(nèi)必須喂狗不然復(fù)位

 88         if(USART1_RX_CNT==21)//數(shù)據(jù)接收完成

 89         {

 90             USART1_RX_CNT=0;//指針復(fù)位

 91             //將接收到的數(shù)據(jù)發(fā)送出去

 92             USART1_Send_Data(USART1_RX_BUF,21);//通過串口1將接收到的固定長度字符發(fā)送出去            

 93         }

 94     }

 95     

 96 }

 97 /**

 98 * 接收指定長度的字符串

 99 * 比如接收固定大小為21個字節(jié)的字符串

100 **/

101 void USART1_IRQHandler(void)                    //串口1中斷服務(wù)程序

102 {

103     u8 Res;

104     if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) 

105         {

106             Res =USART_ReceiveData(USART1);    //讀取接收到的數(shù)據(jù)     

107             if(USART1_RX_CNT<21)//對于接收指定長度的字符串

108             {

109                 USART1_RX_BUF[USART1_RX_CNT]=Res;        //記錄接收到的值    

110                 USART1_RX_CNT++;                                        //接收數(shù)據(jù)增加1 

111             }             

112      }

113          //溢出-如果發(fā)生溢出需要先讀SR,再讀DR寄存器則可清除不斷入中斷的問題

114     if(USART_GetFlagStatus(USART1,USART_FLAG_ORE) == SET)

115     {

116         USART_ReceiveData(USART1);

117         USART_ClearFlag(USART1,USART_FLAG_ORE);

118     }

119      USART_ClearFlag(UART1,USART_IT_RXNE); //一定要清除接收中斷

120 }

121 /*===============================================================================

122 Copyright:

123 Version:

124 Author:    

125 Date: 2017/11/3

126 Description:配置獨立看門狗初始化函數(shù),在主函數(shù)中運行IWDG_ReloadCounter進行喂狗

127     主函數(shù)必須在4s內(nèi)進行一次喂狗不然系統(tǒng)會復(fù)位

128 revise Description:

129 ===============================================================================*/

130 void IWDG_Configuration(void) 

131 {

132      /* 寫入0x5555,用于允許狗狗寄存器寫入功能 */

133     IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); 

134      /* 狗狗時鐘分頻,40K/256=156HZ(6.4ms)*/  

135     IWDG_SetPrescaler(IWDG_Prescaler_256);    /* 喂狗時間 5s/6.4MS=781 .注意不能大于0xfff*/  

136     IWDG_SetReload(781);//781(5s時間)

137     IWDG_SetReload(3125);//781(20s時間)

138     IWDG_Enable();//啟用定時器

139     IWDG_ReloadCounter();

140 }



二、串口二的配置(初始化+中斷配置+中斷接收函數(shù))



  1 /*===============================================================================

  2 Copyright:

  3 Version:

  4 Author:    

  5 Date: 2017/11/3

  6 Description:

  7     函數(shù)功能是將接收固定長度的字符串,并將接收后的字符串通過串口發(fā)送出去

  8 revise Description:

  9 ===============================================================================*/

 10 #include "stm32f10x_usart.h"

 11 #include "stm32f10x.h"

 12 #include "stm32f10x_iwdg.h"

 13 

 14 

 15 u8 USART2_RX_BUF[250]; 

 16 u8 USART2_RX_CNT=0;

 17 u16 USART2_RX_STA=0;       //接收狀態(tài)標記    

 18 

 19 void Usart2_Init(u32 bound)

 20 {  

 21     GPIO_InitTypeDef GPIO_InitStructure;

 22     USART_InitTypeDef USART_InitStructure;

 23     NVIC_InitTypeDef NVIC_InitStructure;

 24     //|RCC_APB2Periph_AFIO

 25     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//使能GPIOA時鐘

 26     RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);//使能USART2時鐘

 27 

 28     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;    //PA2

 29     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;    //復(fù)用推挽

 30     GPIO_Init(GPIOA, &GPIO_InitStructure);

 31 

 32     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;//PA3

 33     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空輸入

 34     GPIO_Init(GPIOA, &GPIO_InitStructure);  

 35 

 36     RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2,ENABLE);//復(fù)位串口2

 37     RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2,DISABLE);//停止復(fù)位

[1] [2] [3] [4]
關(guān)鍵字:STM32  串口  配置代碼 引用地址:STM32的串口配置代碼

上一篇:官方STM32的NUCLEO開發(fā)板使用
下一篇:在STM32平臺上實現(xiàn)printf和scanf函數(shù)(帶回顯)

推薦閱讀

第二季英特爾大師挑戰(zhàn)賽(Intel Master Challenger,簡稱IMC)上海站暨東區(qū)、北區(qū)區(qū)域賽決賽在ChinaJoy2018“英特爾主題館”正式打響,為廣大電競玩家、選手、游戲愛好者們帶來酣暢淋漓的電競饕餮。經(jīng)歷了網(wǎng)吧賽、線上賽、校園賽的層層選拔,脫穎而出的各地準職業(yè)選手們齊聚上海,在明星主播wAwa、澤元,LPL官方主播余霜的激情解說和線上線下數(shù)十萬觀眾...
隨著中國制造業(yè)轉(zhuǎn)型步伐的加快,機器人的使用越來越頻繁,作為工廠里的技術(shù)工程師必需了解機器人的相關(guān)技術(shù),那么通用機器人由什么部件組成呢? 機器人作為一個系統(tǒng),它由如下部件構(gòu)成: 機械手或移動車:這是機器人的主體部分,由連桿,活動關(guān)節(jié)以及其它結(jié)構(gòu)部件構(gòu)成,使機器人達到空間的某一位置。如果沒有其它部件,僅機械手本身并不是機器人。 末端執(zhí)...
目前這樣一個設(shè)計趨同的時代,一部分廠商將研發(fā)的重心轉(zhuǎn)移到了車內(nèi)的科技配置上。不過隨著技術(shù)與創(chuàng)新的不斷發(fā)展,科技配置的增加也讓汽車也變得越來復(fù)雜。而奧迪為了簡化動力總成、底盤和安全系統(tǒng)等高級組件的協(xié)同工作,研發(fā)出了更先進、整合程度更高的計算機,稱為“集成車輛動力學(xué)”計算機。該計算機充當汽車動態(tài)系統(tǒng)的中央設(shè)施。新型中央計算機系統(tǒng)的功...
根據(jù)外媒 XDA 消息,高通下一代可穿戴設(shè)備用 SoC 的名稱出現(xiàn)在 Android 代碼中,名稱預(yù)計為驍龍 Wear 5100(Snapdragon Wear 5100)。就在此前,高通證實計劃開發(fā)下一代可穿戴設(shè)備芯片。  上周,高通公司向 Code Aurora 論壇上傳了新的代碼,其 ID 為“LAW.UM.2.0-00700-SW5100.0”,代號是“monaco”。外媒解釋稱,“LAW”全...

史海拾趣

問答坊 | AI 解惑

基于VC環(huán)境的變頻器聯(lián)網(wǎng)控制

摘要:變頻器是工業(yè)自動化系統(tǒng)中的基本拖動設(shè)備。當應(yīng)用環(huán)境非常惡劣,不適合于人在現(xiàn)場對變頻器直接進行控制時就需要對變頻器進行遠程控制。主要介紹了如何用VC編寫控制軟件對變頻器進行聯(lián)網(wǎng)控制。 關(guān)鍵詞:變頻器;控制軟件;聯(lián)網(wǎng)控制   0  ...…

查看全部問答∨

C51中斷處理過程

說明:由于轉(zhuǎn)發(fā)的帖子是在很久前瀏覽網(wǎng)頁的時候收藏下來的,作者與源地址已經(jīng)無從考究,請作者見諒! C51中斷處理過程        C51編譯器支持在C源程序中直接開發(fā)中斷過程,因此減輕了使用匯編語言的繁瑣工作,提高了開發(fā)效率 ...…

查看全部問答∨

我該不該跳槽?

在目前這個公司做了2年多了,前半年做了一些小的模塊和一些代碼維護工作。近一年多的時間做了一個項目,wince6.0+pxa270的產(chǎn)品,負責上層軟件。期間,學(xué)習了wince系統(tǒng)的裁剪和定制方法,對wince系統(tǒng)和驅(qū)動有了比較清楚的認識,現(xiàn)在想從事系統(tǒng)級或驅(qū) ...…

查看全部問答∨

關(guān)于c52與攝像頭

欲制作一通過c52實現(xiàn)參數(shù)設(shè)置功能并實現(xiàn)數(shù)據(jù)的存取操作的不使用usb攝像頭的遠程實時監(jiān)控系統(tǒng) 在網(wǎng)上搜索時發(fā)現(xiàn)ov7620攝像頭模塊價格較低,但不知是否適用于此單片機,或建議我一些性價比較高的并適用于c52的攝像頭模塊··· 知道的兄弟請解我疑 ...…

查看全部問答∨

能給出tonardo下memshow()的代碼嗎?

在網(wǎng)上找過但是沒找到,many thanks!…

查看全部問答∨

嵌入式開發(fā)技術(shù)交流QQ群

群號:37829738 希望各位同仁共同交流有關(guān)ARM,單片機,LINUX,人工智能技術(shù)…

查看全部問答∨

小弟新手,急求紅外防盜報警器的資料,希望高手幫幫忙,謝謝了?。?!

小弟新手,急求【紅外線防盜報警器的設(shè)計資料】,希望高手哥哥姐姐們幫幫忙,謝謝了!??!有的話可以郵箱我,lijunchong@qq.com,小弟不勝感激??!…

查看全部問答∨

開關(guān)電源損壞的奇怪原因

    各位高手,我用過一批國產(chǎn)開關(guān)電源,帶鉛蓄電池充放電功能的。在現(xiàn)場使用中常常有壞的情況,容易在出現(xiàn)停電、天氣變化時好多被損壞,嚴重的地區(qū)有1/3壞的。     電源返回來可以修好,主要就是壞了PWM芯片、芯片供電串聯(lián) ...…

查看全部問答∨

初音-偽全息3D全教程

先上視頻,原諒我錄制的時候聲音有點小,而且沒有專業(yè)設(shè)備。。??ㄆ瑱C,湊合看吧 原理神馬的,百度去吧。我只寫實際的,而且不花錢。。。。在這里說一下,這個東西好久就有人做過了,但是我的周圍沒有人做過,總是看著網(wǎng)上別人發(fā)的帖子,視頻, ...…

查看全部問答∨

2812中 SCI有空閑-線模式與地址-位模式怎么跟上位機兼容?

SCI有兩種模式,以上位機未知的情況下,是不是兩中驅(qū)動都要寫嗎?才能兼容呢例如上位機是ARM+LINUX的情況下,而我也并不了解上位機驅(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