一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

應用筆記|直接修改寄存器來輸出內(nèi)部時鐘的方法

STM32單片機 ? 來源:未知 ? 2023-06-13 17:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

關鍵字:MCO,手動修改寄存器

目錄預覽

1 在特殊情況下使能 MCO 功能的方法2 具體實現(xiàn)3 總結

1. 在特殊情況下使能 MCO 功能的方法

在對某些不容易復現(xiàn)的問題進行代碼調(diào)時,需要觀察內(nèi)部時鐘的情況,但往往代碼之前并沒有使能 MCO 功能,在這種情況下就可以使用寄存器直接配置來輸出內(nèi)部時鐘到 GPIO 腳位上進行觀察和測試。

下面的例子就是在調(diào)試 STM32G474 很難復現(xiàn)的一個問題,調(diào)試暫停時,通過 PC 端調(diào)試工具直接更改寄存器配置來使能 MCO 功能輸出 SYSCLK 到 GPIO 口的方法。

2.具體實現(xiàn)

MCO 輸出內(nèi)部時鐘到 GPIO 腳位,可以不通過運行用戶代碼,直接在 PC 端調(diào)試工具中配置寄存器來實現(xiàn)。在程序暫停時,往往已經(jīng)走過了時鐘配置,在這種情況下首先需要使能并配置RCC_CFGR 寄存器MCOSEL[3:0]=0x1,選 SYSCLK 來輸出(當然,也可以根據(jù)實際情況選擇輸出其他時鐘源)。 6802c37e-09cd-11ee-962d-dac502259ad0.png68304952-09cd-11ee-962d-dac502259ad0.png 在調(diào)試軟件中直接手動修改寄存器配置值,如下圖:6880b8f6-09cd-11ee-962d-dac502259ad0.png 其次,需要配置 GPIO 通路:GPIO MCO 選用 PA8 , AF0 功能。68cbc01c-09cd-11ee-962d-dac502259ad0.png

GPIO 選擇下面黃色的配置:在下面的配置之前代碼中需要打開 GPIOA 的 clock。

68fc8f9e-09cd-11ee-962d-dac502259ad0.png

GPIOA_MODER.MODE8[1:0] 在寄存器窗口中手動修改為 0x2:

69222f1a-09cd-11ee-962d-dac502259ad0.png

695f148e-09cd-11ee-962d-dac502259ad0.png

GPIOA_OTYPER.OT8 配置為 0,在上電默認的情況下,不用修改,已經(jīng)是 0 了。

698b2cf4-09cd-11ee-962d-dac502259ad0.png

GPIOA_OSPEEDR.OSPEED8[1:0] 配置成 0x2 或 0x3。

69a7b6c6-09cd-11ee-962d-dac502259ad0.png

69c47108-09cd-11ee-962d-dac502259ad0.png

GPIOA_PUPDR.PUPD8[1:0] 在寄存器窗口中手動配置為 0x1。

69e6217c-09cd-11ee-962d-dac502259ad0.png

6a00312a-09cd-11ee-962d-dac502259ad0.png

6a36bfb0-09cd-11ee-962d-dac502259ad0.png

GPIOA_AFRH.AFSEL8[3:0] 配置為 0x0,上電默認已經(jīng)為 0 了,不用修改,如果不 是,請手動修改為 0。

6a6d285c-09cd-11ee-962d-dac502259ad0.png

6a8ebbc0-09cd-11ee-962d-dac502259ad0.png

手動修改后的 GPIOA 寄存器值為如下圖 18 所示:

6ab9d116-09cd-11ee-962d-dac502259ad0.png

3. 總結

在調(diào)試軟件時,可以通過 PC 端調(diào)試工具直接修改寄存器配置來使能某些功能。不過,使用中須注意遵守一定的流程,比如先開啟對應的外設 clock,然后才能配置具體的寄存器去實現(xiàn)一些相應的功能。

完整內(nèi)容請點擊“閱讀原文”下載原文檔。

6ad50846-09cd-11ee-962d-dac502259ad0.png

長按掃碼關注公眾號

更多資訊,盡在STM32

點擊“閱讀原文”,可下載原文檔


原文標題:應用筆記|直接修改寄存器來輸出內(nèi)部時鐘的方法

文章出處:【微信公眾號:STM32單片機】歡迎添加關注!文章轉(zhuǎn)載請注明出處。


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

    關注

    6067

    文章

    44985

    瀏覽量

    650321
  • STM32
    +關注

    關注

    2293

    文章

    11032

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Texas Instruments SN74ACT595/SN74ACT595-Q1 SIPO移位寄存器特性/應用/功能圖

    寄存器和移位寄存器提供時鐘。該移位寄存器具有直接覆蓋清除 (SRCLR\) 輸入、串行 (SER) 輸入,以及進行級聯(lián)的串行
    的頭像 發(fā)表于 07-07 15:27 ?128次閱讀
    Texas Instruments SN74ACT595/SN74ACT595-Q1 SIPO移位<b class='flag-5'>寄存器</b>特性/應用/功能圖

    MAX25069怎么通過I2C修改寄存器

    我手上有一個客戶的MAX25069的板子,請問下:怎么通過I2C接口修改寄存器的值?以寄存器0x2(REG_CTRL[7:0])為例。
    發(fā)表于 04-25 07:11

    了解ISL28022的電流和功率計算應用筆記

    本應用筆記討論數(shù)字電源監(jiān)控(DPM) ISL28022的內(nèi)部計算程序。它解釋了數(shù)據(jù)寄存器的位格式,并舉例說明了內(nèi)部數(shù)學處理
    的頭像 發(fā)表于 02-21 11:30 ?574次閱讀
    了解ISL28022的電流和功率計算應<b class='flag-5'>用筆記</b>

    AFE4400的CNTROL0寄存器的SPI_READ位設置成1才能讀取寄存器的值,讀完了想修改寄存器的值怎么辦?

    AFE4400的CNTROL0寄存器的SPI_READ位設置成1才能讀取寄存器的值,那讀完了想修改寄存器的值怎么辦呢,這個時候是read模式,無法 改變control0寄存器的值,
    發(fā)表于 01-14 08:09

    ADS1298R為什么無法寫寄存器?

    我這里代碼的功能是:先對某個寄存器進行寫操作,在然后讀該寄存器的值,然后去判斷是否修改寄存器成功。 現(xiàn)在遇到的問題是:對某個寄存器進行寫操作過后,在讀該
    發(fā)表于 01-14 07:33

    ADS131E08為什么不能修改寄存器?

    各位有沒有用過ADS131E08,為什么不能修改寄存器,01h CONFIG1 ,03h CONFIG3,修改之后就停止工作了。下面是讀出的各個寄存器的值 0x01: 0x93 0x02
    發(fā)表于 01-03 08:08

    AFE4404沒有接外部時鐘,4404寄存器的為初始值,能夠通過IIC修改寄存器值嗎?

    1、首先AFE4404寄存器默認使用外部時鐘,CLK引腳是否必須要先接一個時鐘,通過修改寄存器的值改為內(nèi)部
    發(fā)表于 12-06 06:35

    stm32 SPI接口為什么無法修改寄存器?如何解決?

    ADS131M04,現(xiàn)在碰到現(xiàn)象是SPI讀到的寄存器數(shù)據(jù)均為正常默認值,寫進入待機模式命令回復的數(shù)據(jù)是0X0022,也是正確的,修改CLOCK寄存器后立即讀回來參數(shù)也是正確的,但是再讀一次還是默認值,實際上并沒有
    發(fā)表于 11-27 07:18

    通用寄存器是什么意思

    在計算機體系結構中,通用寄存器是中央處理(CPU)內(nèi)部最為核心和基礎的組成部分之一。它們被設計為能夠存儲和傳輸各種類型的數(shù)據(jù)和指令,是CPU進行數(shù)據(jù)處理和運算的關鍵工具。通用寄存器
    的頭像 發(fā)表于 09-05 14:13 ?2318次閱讀

    寄存器的類型和作用

    在計算機科學中,寄存器(Register)是一種高速存儲單元,它位于CPU內(nèi)部,與CPU的運算單元和邏輯控制單元緊密相連。寄存器的主要作用是暫時存儲指令、操作數(shù)和地址等臨時數(shù)據(jù),以便CPU快速訪問和處理。由于
    的頭像 發(fā)表于 09-05 14:11 ?4762次閱讀

    寄存器的輸入輸出方式

    寄存器的輸入輸出方式是數(shù)字電路設計中至關重要的部分,它決定了數(shù)據(jù)如何在寄存器中進出以及處理的效率。下面將詳細探討寄存器的幾種主要輸入輸出方式
    的頭像 發(fā)表于 09-05 14:09 ?2627次閱讀

    寄存器故障分析

    寄存器故障分析是計算機硬件維護與系統(tǒng)穩(wěn)定性保障中的重要環(huán)節(jié)。寄存器作為計算機中的關鍵組成部分,負責存儲和傳輸數(shù)據(jù),其穩(wěn)定性和可靠性直接影響到整個計算機系統(tǒng)的性能。以下是對寄存器故障的全
    的頭像 發(fā)表于 08-29 11:26 ?2169次閱讀

    寄存器是什么意思?寄存器是如何構成的?

    在計算機科學中,寄存器(Register)是一個高速存儲單元,它位于中央處理(CPU)內(nèi)部,用于存儲計算機程序執(zhí)行過程中所需要的數(shù)據(jù)、指令地址或狀態(tài)信息。寄存器是計算機體系結構中至關
    的頭像 發(fā)表于 08-02 18:23 ?7494次閱讀
    <b class='flag-5'>寄存器</b>是什么意思?<b class='flag-5'>寄存器</b>是如何構成的?

    使用PGA309配置寄存器時遇到的疑問求解

    任何可修改寄存器,我成功配置了寄存器1、2,但3、4寄存器卻沒有成功寫入,vout沒有變化。想問您,在沒有外接EEPROM的情況下,可以修改寄存器
    發(fā)表于 08-02 07:38

    請問PGA308如何修改寄存器?

    如何單獨修改PGA308的某一個寄存器值,我從新操作的時候發(fā)現(xiàn)鼠標無法點擊并且編輯修改CFG2寄存器,嘗試并點擊紅圈內(nèi)的窗口但是并不能編輯,請教一下如何
    發(fā)表于 08-02 07:35