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

歷史上的今天

今天是:2024年09月01日(星期日)

正在發(fā)生

2018年09月01日 | STM32庫函數(shù)實現(xiàn)USART發(fā)送數(shù)據(jù)

發(fā)布者:Whisper123 來源: eefocus關鍵字:STM32  庫函數(shù)  USART  發(fā)送數(shù)據(jù) 手機看文章 掃描二維碼
隨時隨地手機看文章

參考文件:STM32固件庫使用手冊的中文翻譯版.pdf 
如圖1 
這里寫圖片描述

  1. 我們先把USART初始化函數(shù)添加到主函數(shù),如圖二 
    包括Baudrate,Word Length,Stop Bit,Parity,Hardware Flow Control(硬件流控制),Usart Mode; 
    這里寫圖片描述

  2. UE使能,使能串口外設,如圖3 
    這里寫圖片描述
    3.串口初始化,串口外設使能之后,就要發(fā)送數(shù)據(jù)了如圖4; 
    這里寫圖片描述
    4.發(fā)送完成標志位函數(shù),如圖5; 
    這里寫圖片描述

程序1 實現(xiàn)功能代碼如下

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

 劉凱教你學STM32F103

 第20講

 軟件仿真,庫函數(shù)實現(xiàn)USART數(shù)據(jù)發(fā)送

 2016年4月24日 10:12:39

 程序實現(xiàn)1 

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

#include "sys.h"

#include "delay.h"



void RCC_Configuration(void);

void GPIO_Configuration(void);


int main(void)

{

    u8 i,data;

    USART_InitTypeDef USART_InitStructure;          


    RCC_Configuration();

    GPIO_Configuration();



    USART_InitStructure.USART_BaudRate = 9600;      

    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_Tx | USART_Mode_Rx; 

    USART_Init(USART1, &USART_InitStructure);


    USART_Cmd(USART1,ENABLE);


    data = 'A';

    for(i=0;i<30;i++)

    {

        USART_SendData(USART1, data);

        data++;

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

    }

}


void RCC_Configuration(void)

{

        /*---------------使用外部RC晶振----------*/

        RCC_DeInit();           //設置時鐘為缺省值

        RCC_HSEConfig(RCC_HSE_ON);  //使能外部高速晶振

        while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);//等待HSE準備就緒


        FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);   //使能指令預取

        FLASH_SetLatency(FLASH_Latency_2);                      //等待2個周期


        RCC_HCLKConfig(RCC_SYSCLK_Div1);    //HCLK = SYSCLK

        RCC_PCLK2Config(RCC_HCLK_Div1);     //PCLK2 = HCLK

        RCC_PCLK1Config(RCC_HCLK_Div2);     //PCLK1 = HCLK/2

        RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); //PLLCLK = 72MHZ

        RCC_PLLCmd(ENABLE);                                 //Enable PLLCLK

        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); //Wait PLL is ready


       RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);         //SYSCLK = PLLCLK

       while(RCC_GetSYSCLKSource()!= 0x08);                   //Wait PLLCLK as system clock 



        //---------打開相應外設時鐘--------------------

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);    //使能APB2外設的GPIOA的時鐘 

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);    

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);     


void GPIO_Configuration(void)

{

    GPIO_InitTypeDef    GPIO_InitStructure;     //聲明一個結構體變量

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;   //

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    //管腳頻率為50MHZ

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; 


    GPIO_Init(GPIOA,&GPIO_InitStructure);                //初始化GPIOA寄存器


    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;  //選擇

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;    

    GPIO_Init(GPIOA,&GPIO_InitStructure);                //初始化GPIOA寄存器      


對上面代碼進行優(yōu)化


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

 劉凱教你學STM32F103

 第20講

 軟件仿真,庫函數(shù)實現(xiàn)USART數(shù)據(jù)發(fā)送

 2016年4月24日 10:12:39

 程序實現(xiàn)2 對程序1進行優(yōu)化

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

#include "sys.h"

#include "delay.h"



void RCC_Configuration(void);

void GPIO_Configuration(void);

void USART_Configuration(u32 Baudrate);


int main(void)

{

    u8 i,data;



    RCC_Configuration();

    GPIO_Configuration();

    USART_Configuration(9600);

    data = 'A';

    for(i=0;i<30;i++)

    {

        USART_SendData(USART1, data);

        data++;

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

    }

}


void RCC_Configuration(void)

{

        /*---------------使用外部RC晶振----------*/

        RCC_DeInit();           //設置時鐘為缺省值

        RCC_HSEConfig(RCC_HSE_ON);  //使能外部高速晶振

        while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);//等待HSE準備就緒


        FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);   //使能指令預取

        FLASH_SetLatency(FLASH_Latency_2);                      //等待2個周期


        RCC_HCLKConfig(RCC_SYSCLK_Div1);    //HCLK = SYSCLK

        RCC_PCLK2Config(RCC_HCLK_Div1);     //PCLK2 = HCLK

        RCC_PCLK1Config(RCC_HCLK_Div2);     //PCLK1 = HCLK/2

        RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); //PLLCLK = 72MHZ

        RCC_PLLCmd(ENABLE);                                 //Enable PLLCLK

        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); //Wait PLL is ready


       RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);         //SYSCLK = PLLCLK

       while(RCC_GetSYSCLKSource()!= 0x08);                   //Wait PLLCLK as system clock 



        //---------打開相應外設時鐘--------------------

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);    //使能APB2外設的GPIOA的時鐘 

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);    

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);     


void GPIO_Configuration(void)

{

    GPIO_InitTypeDef    GPIO_InitStructure;     //聲明一個結構體變量

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;   //

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    //管腳頻率為50MHZ

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; 


    GPIO_Init(GPIOA,&GPIO_InitStructure);                //初始化GPIOA寄存器


    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;  //選擇

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;    

    GPIO_Init(GPIOA,&GPIO_InitStructure);                //初始化GPIOA寄存器      


void USART_Configuration(u32 Baudrate)

{

    USART_InitTypeDef USART_InitStructure; 

    USART_InitStructure.USART_BaudRate = Baudrate;      

    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_Tx | USART_Mode_Rx; 

    USART_Init(USART1, &USART_InitStructure);


    USART_Cmd(USART1,ENABLE);

}


關鍵字:STM32  庫函數(shù)  USART  發(fā)送數(shù)據(jù) 引用地址:STM32庫函數(shù)實現(xiàn)USART發(fā)送數(shù)據(jù)

上一篇:stm32發(fā)送16進制的數(shù)組總結
下一篇:stm32使用兩路串口及接收不定長數(shù)據(jù)的實現(xiàn)

推薦閱讀

關于即將到來的“機器人末日”傳聞,人們各執(zhí)一詞,因為這與就業(yè)市場有極大關聯(lián)。機器人技術與人工智能技術正以驚人的速度進步和發(fā)展。目前,從建筑到金融領域,部分就業(yè)者已經(jīng)被同類機械化或數(shù)字化技術所取代。但在未來十年,更多的行業(yè)將受到影響。根據(jù)2017年麥肯錫全球研究所對46個國家中800個職業(yè)進行的一項研究發(fā)現(xiàn),到2030年,將有8億人的工作被自動...
據(jù)外媒報道,現(xiàn)在,斯柯達Scala和柯米克(Kamiq)車型的車主都可以利用無線技術,將智能手機連到汽車上。此外,該兩款車型也是斯柯達家族內(nèi)首批配備了新型無線SmartLink技術(智能連接)的車型,可讓車主更方便地使用蘋果CarPlay或安卓汽車系統(tǒng)(Android Auto)。結合Phone Box的感應式充電功能以及汽車天線的無繩連接,甚至可以完全實現(xiàn)在車內(nèi)無線使用...
數(shù)字數(shù)字 萬用表是一種非常有用的儀器,將多個測量功能組合在一起。典型的萬用表具有可變量程歐姆表,電壓表和電流表的功能。其中一些還包括測試二極管和晶體管的功能。在本文中,我將討論將溫度計功能添加到常規(guī)數(shù)字萬用表中的技術。該技術非常簡單,它使用一個溫度傳感器以及兩個電阻和一個DPDT滑動開關。萬用表以攝氏度為單位顯示周圍溫度理論在上一篇...
串口是單片機最重要的外設之一,在很多項目開發(fā)中都有應用,Lora模塊的外部通訊方式就是串口。本節(jié)簡單的和大家解析一下串口通訊及驅動代碼的編程。STM8L101F3單片機支持一路串口通訊。我們先看一下Lora模塊的硬件接口,如下圖所示:串口的硬件接口是PC2 和PC3兩個腳位。下面開始講解軟件部分,這塊我們無際單片機編程也有這個項目全部視頻教程,下面是文...

史海拾趣

問答坊 | AI 解惑

電源噪聲濾波器的基本原理與應用方法

電源噪聲濾波器的基本原理與應用方法       隨著現(xiàn)代科學技術的飛速發(fā)展,電子、電力電子、電氣設備應用越來越廣泛,它們在運行中產(chǎn)生的高密度、寬頻譜的電磁信號充滿整個空間,形成復雜的電磁環(huán)境。復雜的電磁環(huán)境要求電 ...…

查看全部問答∨

求“人的反應時間測試電路”原理圖

本帖最后由 paulhyde 于 2014-9-15 09:07 編輯 數(shù)字電子的課程設計 人的反應時間測試電路及原理 用CMOS原件  …

查看全部問答∨

看看人家的收藏:德國古董硬木箱子的電子管雞雞

今天無意間看到一個好東東,眼前一亮啊! 來看看他的雞雞呀。。德國鬼子的電子管機器。用的全是猛料呀。15斤的硬木箱子清一色銅鍍鉻箱子配件(包角合頁和鎖扣)箱子看著像是紅木的。原裝東西沒動過的!通電正常,整機耀耀生輝的古董。用了一共大小 ...…

查看全部問答∨

關于petalinux在Xilinx開發(fā)板上的移植問題

開發(fā)板是Xilinx的ML505,Linux使用的是petalinux-v0.40-final包。在CPU不支持MMU的情況下,petalinux的移植沒有問題,但是當我啟用了MMU后,根文件系統(tǒng)的掛載就出現(xiàn)問題了: VFS: Cannot open root device \"\" or unknown-block(0,0) Please app ...…

查看全部問答∨

ucGUI移植S3C2440顯示問題, 顯示倆次

我往S3C2440上移植ucGUI,做了一次Hello,World的小測試,結果Hello,world可以顯示,但是現(xiàn)實的卻是有倆個,本來應該在左上顯示,但現(xiàn)在是左上也有,左下三分之二屏那也有,很奇怪,不知道哪些地方有問題,望高手解答!!!…

查看全部問答∨

調(diào)用CreatFile函數(shù)后,如何根據(jù)其返回值判斷設備當前的狀態(tài)呢?

  我在做一個關于USB通信的程序,現(xiàn)在要求在沒有裝驅動或者設備沒有插好的情況下,在上位機的程序中給出提示,該怎么實現(xiàn),請高手指教。能不能通過調(diào)用CreatFile函數(shù)后再用GetLastError函數(shù)得到錯誤代碼來進行區(qū)分呢,我試過,好象錯誤代 ...…

查看全部問答∨

求助:負電壓信號的AD采集實現(xiàn)

電機轉速輸出信號為-2.5V~0V,但ADC只能采集正電壓。 怎么處理? 想找電壓極性轉換芯片的,但是找的基本上都是電源使用的,不能滿足要求。 希望大家能給我一些好的建議。 非常感謝!…

查看全部問答∨

YAFFS能否移植到其他嵌入式操作系統(tǒng)?

YAFFS移植到嵌入式Linux的案例非常多,但移植到其他操作系統(tǒng)卻從來沒見過。 所以想問下各位大蝦,YAFFS能否移植到其他嵌入式操作系統(tǒng)?比如Nucleus Plus?…

查看全部問答∨

觸摸屏的疑問

各位大蝦好! 不好意思打攪你們了,想請教你們一個問題了. 我想把WINCE上面的觸摸屏校正的算法移植到自己的平臺上面來,我們平臺的MCU是32位的,在WINCE中,我主要COPY了 3個函數(shù),DdsiTouchPanelGetPoint(),TouchPanelSetCalibration(),TouchPanelCali ...…

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

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 鄂州市| 台中市| 临武县| 饶平县| 本溪| 敦化市| 门头沟区| 信阳市| 玉田县| 岳西县| 上林县| 额敏县| 固安县| 东港市| 靖边县| 志丹县| 买车| 博野县| 房山区| 临汾市| 阿巴嘎旗| 霍林郭勒市| 呼伦贝尔市| 抚宁县| 尼玛县| 富宁县| 罗江县| 连州市| 阳谷县| 惠安县| 万荣县| 青龙| 青川县| 邳州市| 宜兰市| 新蔡县| 襄城县| 肇东市| 迁安市| 阳山县| 宝坻区|