91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32F0xx _USART收發(fā)配置詳細(xì)過(guò)程

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 2020-04-08 09:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

串口對(duì)于處理器來(lái)說(shuō)算是一種標(biāo)配,也是在軟件開(kāi)發(fā)中必不可少的,那就是使用串口來(lái)調(diào)試信息(打印出相應(yīng)的信息)。STM32F0系列的芯片,串口根據(jù)型號(hào)不同,數(shù)量也不同,從1個(gè)到8個(gè)不等。

今天主要總結(jié)串口簡(jiǎn)單且常用的功能,發(fā)送字符和中斷接收字符。今天提供的串口發(fā)送功能將在后面的各個(gè)模塊總結(jié)中都需要使用到,主要用于驗(yàn)證和測(cè)試各項(xiàng)功能的正確性。

下載

ST標(biāo)準(zhǔn)外設(shè)庫(kù)和參考手冊(cè)、數(shù)據(jù)手冊(cè)等都可以在ST官網(wǎng)下載,你也可以到我的360云盤(pán)下載。關(guān)于F0系列芯片的參考手冊(cè)有多個(gè)版本(針對(duì)F0不同芯片),但有一個(gè)通用版本,就是“STM32F0x128參考手冊(cè)V8(英文)2015-07”建議參考該手冊(cè),以后如果你換用一種型號(hào)芯片也方便了解。

今天的軟件工程下載地址(360云盤(pán)):

https://yunpan.cn/cS5TeTVUWdc7V訪問(wèn)密碼 9b8c

STM32F0xx的資料可以在我360云盤(pán)下載:

https://yunpan.cn/cS2PVuHn6X2Bj訪問(wèn)密碼 8c37

準(zhǔn)備工作

①新建源程序文件

一個(gè)工程項(xiàng)目在增加模塊功能的時(shí)候,一般都需要新增加模塊源程序的文件。今天提供的工程由于增加USART模塊,因此針對(duì)昨天(上一篇文章)的軟件工程需要增加模塊USART的文件(usart.c 和 usart.h)。

新建了源程序文件,還要添加到工程中進(jìn)行編譯才行。還有需要添加我們使用到的標(biāo)準(zhǔn)外設(shè)庫(kù)文件到工程,我已經(jīng)將文件新建,并添加到軟件工程中,如下圖:


注意:

文件所在位置最好對(duì)應(yīng)目錄,方便管理。比如:usart.c放在bsp文件下,添加在工程中Bsp組下面。

源代碼詳情

①RCC時(shí)鐘


該函數(shù)位于bsp.c文件下面;

我個(gè)人習(xí)慣第一步配置時(shí)鐘,ST官方提供的例程也是把配置時(shí)鐘放在前面。關(guān)于RCC時(shí)鐘的配置比較重要,有好幾次我就是由于沒(méi)有配置相應(yīng)RCC時(shí)鐘,讓我找了很久的問(wèn)題。

②USART引腳配置


該函數(shù)位于usart.c文件下面;

這里的配置就是對(duì)串口收發(fā)引腳進(jìn)行配置(具體參數(shù)說(shuō)明請(qǐng)看上一篇文章)。

注意:

上面紅色框里面的配置是重點(diǎn),必須對(duì)應(yīng)配置才行。這里第三個(gè)參數(shù)“GPIO_AF_1”需要和你使用的外設(shè)對(duì)應(yīng)。

③USART配置


該函數(shù)位于usart.c文件下面;

這里是串口相關(guān)參數(shù)進(jìn)行配置,詳情請(qǐng)看中文注釋。具體每一個(gè)參數(shù)的意思,可以參看昨天方式,go to definition...

注意:

上面紅色框處,如果要使用中斷(我們工程是接收),必須對(duì)應(yīng)配置才行。

④NVIC配置


該函數(shù)位于bsp.c文件下面;

要使用中斷,必須配置NVIC,這點(diǎn)也不能忘記。

⑤串口中斷接收函數(shù)


該函數(shù)位于stm32f0xx_it.c文件下面;

中斷接收到一個(gè)字符,就發(fā)送出去(可以通過(guò)電腦串口發(fā)送字符,STM32F0接收到該字符又發(fā)送給電腦)。

說(shuō)明

STM32F0的芯片軟件兼容性很好,可以適用于F0其他很多型號(hào)的芯片(具體請(qǐng)看手冊(cè)、或者親自測(cè)試)。

以上實(shí)例總結(jié)僅供參考,若有不對(duì)之處,敬請(qǐng)諒解。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    20248

    瀏覽量

    252153
  • USART
    +關(guān)注

    關(guān)注

    1

    文章

    202

    瀏覽量

    33157
  • STM32F0
    +關(guān)注

    關(guān)注

    0

    文章

    61

    瀏覽量

    17864
  • STM32F0XX
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    2965
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    LAT1171+STM32F745 USART1 Bootloader 失敗原因分析與解決

    使用 STM32F745 進(jìn)行產(chǎn)品開(kāi)發(fā)的時(shí)候,出現(xiàn)了使用 STM32CubeProgramer 無(wú)法通過(guò) USART1 Bootloader 進(jìn)行程序升級(jí)的問(wèn)題。為了解決客戶的問(wèn)題,我在 NUCLEO-
    發(fā)表于 01-11 17:33 ?0次下載

    在標(biāo)準(zhǔn)庫(kù)下配置stm32f103x的spi在引入rtthread后收發(fā)的消息就錯(cuò)了,為什么?

    我在標(biāo)準(zhǔn)庫(kù)下配置stm32f103x的spi在引入rtthread后收發(fā)的消息就錯(cuò)了,引入之前沒(méi)問(wèn)題,請(qǐng)問(wèn)這是啥情況
    發(fā)表于 10-13 08:07

    SDK資源包bug drv_usart.c不能使用UART9及以上的串口怎么解決?

    問(wèn)題一: 用Studio生成STM32F4工程,發(fā)現(xiàn)在board.h 配置串口9(BSP_USING_UART9)有問(wèn)題,觀察drv_usart.c文件發(fā)現(xiàn)沒(méi)有串口8以上的代碼。 注:stm3
    發(fā)表于 09-25 06:37

    GD32的串口DMA收發(fā)數(shù)據(jù)失敗怎么解決?

    我在使用RTT的GD32F303的BSP時(shí),配置使用串口DMA收發(fā)(rt_device_open),發(fā)現(xiàn)錯(cuò)誤,最終無(wú)法收發(fā)數(shù)據(jù),對(duì)比了STM32
    發(fā)表于 09-17 06:04

    制作STM32F1開(kāi)發(fā)板的BSP失敗的原因?

    _HAL\\STM32F1xx_HAL_Driver\\Src\\stm32f1xx_hal_nor.c: 0 warnings, 1 error compiling
    發(fā)表于 08-29 07:42

    STM32F10xxx參考手冊(cè)

    STM32F1XX數(shù)據(jù)手冊(cè)中文版
    發(fā)表于 07-10 16:09 ?10次下載

    stm32N657配置USART2,可以發(fā)送,但是為什么無(wú)法進(jìn)入接收中斷呢?

    https://gitee.com/liu-qingchang/code/tree/master/stm32n6 main函數(shù)和usart代碼 使用stm32N657這塊評(píng)估板,使用cubeMX
    發(fā)表于 06-18 07:13

    STM32F4標(biāo)準(zhǔn)外設(shè)庫(kù)資料

    stm32f4xx.h,標(biāo)準(zhǔn)外設(shè)庫(kù)
    發(fā)表于 06-08 09:49 ?5次下載

    STM32F40xxx和STM32f41xx flash編程手冊(cè)

    PM0081_STM32F40xxx and STM32F41xxx單片機(jī)編程手冊(cè)
    發(fā)表于 06-06 17:02 ?5次下載

    0STM32中的SysTick是個(gè)啥?咋用?(可下載)

    中的使能位清除,就永不停息。SysTick在《STM32xx中文參考手冊(cè)》里面基本沒(méi)有介紹,其詳細(xì)介紹,內(nèi)核編程手冊(cè)中。在工程中我們將以STM32F373為例,為SysTick配置1m
    發(fā)表于 04-01 14:52 ?0次下載

    STM32F103×8/STM32F103×B MCU手冊(cè)

    本文提供了STM32F103x8和STM32F103xB中密度高性能系列微控制器的訂購(gòu)信息和機(jī)械器件特性。有關(guān)整個(gè)STMicroelectronics STM32F103xx系列的更多信息,請(qǐng)
    發(fā)表于 03-18 16:37 ?0次下載

    STM32F107的USART2為什么進(jìn)不了中斷?

    剛開(kāi)始學(xué)STM32,手里有一塊公司的板子,板子上的USB接到FT232R,再?gòu)腇T232R接到MCU的PD5(USART2TX)和PD6(USART2RX)。 我嘗試了公司的代碼,應(yīng)該是用標(biāo)準(zhǔn)庫(kù)寫(xiě)
    發(fā)表于 03-14 16:57

    stm32g0b1中的usart5進(jìn)不去HAL_UARTEx_RxEventCallback,為什么?

    請(qǐng)教一下關(guān)于stm32g系列的問(wèn)題,stm32g0b1中的usart5進(jìn)不去HAL_UARTEx_RxEventCallback,cudemx上配置跟其他串口也是一樣的,都打開(kāi)中斷了,
    發(fā)表于 03-13 06:51

    stm32f103USART2為什么無(wú)法收發(fā)信息?

    include \"usart.h\" int fputc(int ch, FILE *f){Serial_SendByte(ch); return ch;} void
    發(fā)表于 03-12 06:22

    STM32L451CEU6發(fā)送0x80會(huì)收到0x00的數(shù)據(jù),發(fā)送0x01會(huì)收到0x7F的數(shù)據(jù),為什么?

    使用STM32L451CEU6型號(hào)的芯片,在用usart(PA9、PA10)進(jìn)行串口通信時(shí),發(fā)送0x55在PC端可以收到正確的數(shù)據(jù),但是發(fā)送0x80會(huì)收到
    發(fā)表于 03-07 08:44