chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

【有那么點(diǎn)詳細(xì)的CW32學(xué)習(xí)筆記】單片機(jī)啟動(dòng)\庫(kù)函數(shù)構(gòu)成

CW生態(tài)社區(qū) ? 來(lái)源:jf_08851166 ? 作者:jf_08851166 ? 2023-08-10 11:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本章為CW32F030C8T6時(shí)鐘的參考資料,面向初學(xué)者。

第一部分 默認(rèn)時(shí)鐘和啟動(dòng)文件

單片機(jī)內(nèi)部基本由內(nèi)核、總線、外設(shè)組成,這三部分作為數(shù)字電路,都需要開(kāi)發(fā)者提供時(shí)鐘信號(hào)才能正常工作。所謂時(shí)鐘信號(hào),就是周期脈沖信號(hào),由電路分析可知RC振蕩電路可以產(chǎn)生穩(wěn)定的脈沖,故單片機(jī)的時(shí)鐘信號(hào)可以由RC振蕩器提供。但是RC振蕩器提供的時(shí)鐘信號(hào)質(zhì)量不高,而晶體振蕩器依靠壓電效應(yīng)提供穩(wěn)定的、高質(zhì)量的時(shí)鐘信號(hào)。以CW32F030C8T6單片機(jī)為例,他擁有2個(gè)內(nèi)部振蕩器,并且可以使用外部振蕩器輸入的脈沖信號(hào)作為時(shí)鐘。先說(shuō)內(nèi)部振蕩器,有HSI(高速-high speed、內(nèi)部-internal)和LSI兩個(gè)震蕩器,這兩個(gè)振蕩器均為RC振蕩器,可以通過(guò)配置相關(guān)的寄存器來(lái)調(diào)整輸出頻率,一般單片機(jī)啟動(dòng)的時(shí)候都會(huì)使用內(nèi)部振蕩器提供的時(shí)鐘,這種RC振蕩器啟動(dòng)速度很快,價(jià)格低廉,非常時(shí)候作為啟動(dòng)時(shí)鐘。內(nèi)部低速振蕩器一般不作為內(nèi)核運(yùn)行的時(shí)鐘,而是作為部分外設(shè)的時(shí)鐘,如rtc定時(shí)器實(shí)時(shí)時(shí)鐘)和看門狗。對(duì)于此款單片機(jī),可以通過(guò)下述辦法來(lái)判斷單片機(jī)上電之后的行為,提示:一般單片機(jī)上電之后都會(huì)配置主要的時(shí)鐘參數(shù),但配置之后工作狀態(tài)不同,后文會(huì)有對(duì)比。

1.找到單片機(jī)的啟動(dòng)文件,啟動(dòng)文件以“.s”后綴出現(xiàn),意為start_up。

2.啟動(dòng)文件由匯編語(yǔ)言編寫,單片機(jī)啟動(dòng)一定會(huì)從啟動(dòng)文件開(kāi)始,而不是C語(yǔ)言下的main函數(shù)。

3.下圖為啟動(dòng)文件截圖。

wKgaomTUVG2ANVRbAA577myiy30508.png

4.在上方文件中找到那個(gè)叫SystemInit的東西,這是個(gè)函數(shù)名字,一般來(lái)講都可以在廠商提供的庫(kù)函數(shù)中找到,cw32的在下面這個(gè)圖的文件里

wKgaomTUVHmAHDVCAAR5wOr0_So903.png

1.在執(zhí)行完SystemInit函數(shù)的這三行代碼之后,單片機(jī)會(huì)正常跳轉(zhuǎn)到main函數(shù)開(kāi)始執(zhí)行,就像啟動(dòng)文件里面寫的那樣。

至此,啟動(dòng)文件主要部分及系統(tǒng)默認(rèn)的上電時(shí)鐘已講解完。

如果你看不懂C語(yǔ)言,那就去補(bǔ)習(xí)C語(yǔ)言。

如果你看不懂為什么這是在操作寄存器,下一部分會(huì)教你如何看寄存器。

第二部分 庫(kù)函數(shù)和寄存器

我們都知道計(jì)算機(jī)編程最早使用的是機(jī)器語(yǔ)言,也就是用打點(diǎn)紙帶來(lái)編程,后續(xù)出現(xiàn)了匯編語(yǔ)言,使用助記符來(lái)輔助編程,再到后來(lái)的C語(yǔ)言,高級(jí)語(yǔ)言誕生,軟件開(kāi)發(fā)變得更加簡(jiǎn)單。但是到計(jì)算機(jī)這一層,他依然是使用的數(shù)字電路來(lái)工作的,至少,開(kāi)發(fā)者需要操作的東西就算不是數(shù)字電路,也是個(gè)寄存器。計(jì)算機(jī)發(fā)展中,寄存器被人們用“地址”這個(gè)東西來(lái)標(biāo)號(hào),翻開(kāi)編程手冊(cè)(單片機(jī)至少有三個(gè)手冊(cè)是開(kāi)發(fā)者需要看的,分別是:data_sheet user_program_guide core_program_guide),你會(huì)發(fā)現(xiàn)每個(gè)寄存器都會(huì)有一個(gè)地址,到目前為止,32位單片機(jī)擁有非常多的寄存器,這些寄存器地址已經(jīng)不會(huì)再用最直接的地址累加形式顯示出來(lái)(如0x00,0x01,0x02........)。稍微高級(jí)一些的單片機(jī)都會(huì)使用基地址+地址偏移量的形式指示寄存器的地址,如下圖所示:

wKgaomTUVIqAKew6AAOye9Ke2Qg952.png

wKgZomTUVJOAER-zAAGlCpcQCFM007.png

如果開(kāi)發(fā)者想要使用位于SYSCTRL這個(gè)寄存器組下的分寄存器,如總線時(shí)鐘或是PLL時(shí)鐘,就需要用基地址+地址偏移量的方式找到這個(gè)寄存器,并賦值寄存器來(lái)配置。所謂地址偏移量,就是這個(gè)寄存器有多少字節(jié)的容量,32位單片機(jī)就是4字節(jié),所以地址偏移量基本上就是4字節(jié)步進(jìn)來(lái)累加的,某些情況會(huì)有多個(gè)寄存器一起負(fù)責(zé)一個(gè)功能的情況,這個(gè)時(shí)候偏移量要酌情理解。那地址代表了寄存器,地址和庫(kù)函數(shù)有什么聯(lián)系?C語(yǔ)言最精髓的東西是什么?那必然是指針,指針就用的是這種“以地址指示參數(shù)位置”的辦法,所以你可以在庫(kù)函數(shù)看到如下一系列的

宏定義:

wKgaomTUVLKARhguAAAZ25INjIA560.png

基地址。

wKgZomTUVMCAWo8aAAAnaEHxftY641.png

地址強(qiáng)制轉(zhuǎn)換為結(jié)構(gòu)體指針。

wKgZomTUVM-AW74dAAAa51KWBdQ481.png

上面那個(gè)東西又會(huì)被定義成開(kāi)發(fā)者可以直接操作的寄存器。

有朋友肯定會(huì)問(wèn),這里只有一個(gè)基地址,為什么可以用CW_SYSCTRL->REG的形式操作很多寄存器呢?由于每個(gè)寄存器都是32位的,也就是4字節(jié),由C語(yǔ)言聯(lián)合體和結(jié)構(gòu)體的特性,內(nèi)部的地址是基地址累加的,只需要一個(gè)寄存器累加固定的偏移量,就能把結(jié)構(gòu)體成員和單片機(jī)內(nèi)的寄存器一一對(duì)應(yīng)起來(lái),這就是寄存器與庫(kù)函數(shù)的聯(lián)系。一旦想通寄存器和庫(kù)函數(shù)是怎么聯(lián)系起來(lái)的,單片機(jī)編程就會(huì)變成一個(gè)非常簡(jiǎn)單的事情,因?yàn)閹?kù)函數(shù)本質(zhì)上就是在用地址操作去賦值、改寫寄存器,全世界的單片機(jī)庫(kù)函數(shù)都是如此。在任何時(shí)候,開(kāi)發(fā)者都可以通過(guò)直接賦值寄存器的辦法去完成自己期望的配置?,F(xiàn)在我們回頭看cw32系統(tǒng)初始化函數(shù)的最后兩行,最開(kāi)始的就是基地址指針,這個(gè)是一個(gè)結(jié)構(gòu)體指針,結(jié)構(gòu)體由很多聯(lián)合體構(gòu)成,指針選擇結(jié)構(gòu)體成員,結(jié)構(gòu)體成員是聯(lián)合體,所以用‘.’的方式選擇了TRIM成員進(jìn)行賦值,賦的值就是等號(hào)右邊的部分。細(xì)說(shuō)等號(hào)右邊的含義。RCC是一個(gè)十六進(jìn)制數(shù),他被強(qiáng)制轉(zhuǎn)化為了16位指針類型,并在賦值之前解引用被變成了本身的值,即前文提到的十六進(jìn)制數(shù),根據(jù)編程手冊(cè),這個(gè)十六進(jìn)制數(shù)表示了RC振蕩器對(duì)應(yīng)48MHz輸出的校準(zhǔn)值。

wKgaomTUVHmAHDVCAAR5wOr0_So903.png

wKgZomTUVQiAR4D3AAOXuFbjEbU405.png

至此,關(guān)于第二部分的寄存器-庫(kù)函數(shù)聯(lián)系已講解完成,如有錯(cuò)誤或遺漏,歡迎指正和補(bǔ)充。

總結(jié):

1.單片機(jī)啟動(dòng)并不是從main函數(shù)開(kāi)始執(zhí)行的,而是從啟動(dòng)文件規(guī)定的函數(shù)開(kāi)始執(zhí)行的

2.大部分單片機(jī)都會(huì)上電自動(dòng)配置時(shí)鐘保證單片機(jī)能夠正常工作

3.寄存器和庫(kù)函數(shù)通過(guò)地址這個(gè)東西聯(lián)系在一起,庫(kù)函數(shù)本質(zhì)就是在操作寄存器

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6071

    文章

    45254

    瀏覽量

    659911
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5493

    瀏覽量

    127694
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    11

    文章

    1946

    瀏覽量

    134103
  • 庫(kù)函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    177

    瀏覽量

    34813
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    278

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    第1章如何學(xué)習(xí)單片機(jī)(1.3 1.4)

    1.3單片機(jī)學(xué)習(xí)的準(zhǔn)備工作 1.足夠的信心、恒心和耐心 同學(xué)問(wèn)我,單片機(jī)這門技術(shù)難不難。這個(gè)問(wèn)題得從兩個(gè)方面去分析。 首先,從戰(zhàn)略上藐視它。那么
    的頭像 發(fā)表于 10-10 10:36 ?112次閱讀
    第1章如何<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>單片機(jī)</b>(1.3 1.4)

    第1章 如何學(xué)習(xí)單片機(jī)

    路在何方;也因?yàn)樽髡呙^(guò)燒紅的鐵塊,燙了手,所以也可以告訴讀者教訓(xùn)和代價(jià)是什么。希望各位都能站在作者的肩膀上,看得更遠(yuǎn)! 1.1學(xué)什么類型的單片機(jī) 單片機(jī)的型號(hào)那么多,如何選取一款合適的進(jìn)行學(xué)
    的頭像 發(fā)表于 10-10 10:32 ?95次閱讀

    代碼格式化工具Clang-Format提升你的CW32工程質(zhì)量

    它能自動(dòng)統(tǒng)一團(tuán)隊(duì)代碼風(fēng)格,讓不同開(kāi)發(fā)者寫出的代碼如出一轍。就像 CW32 官方庫(kù)函數(shù)遵循統(tǒng)一規(guī)范一樣,Clang-Format 能讓團(tuán)隊(duì)所有成員的代碼瞬間保持一致,徹底消除 "tabs vs spaces" 的爭(zhēng)論。
    的頭像 發(fā)表于 10-09 17:43 ?718次閱讀
    代碼格式化工具Clang-Format提升你的<b class='flag-5'>CW32</b>工程質(zhì)量

    【教程】手把手教你用CLion進(jìn)行CW32開(kāi)發(fā)

    /CW32-GCC-Clion-Template 最近 CLion 對(duì)非商業(yè)用途免費(fèi)了,我立馬下載了最新的CLion2025,現(xiàn)在針國(guó)產(chǎn)武漢芯源半導(dǎo)體的 CW32單片機(jī) 搭建CLion+GCC+ CMake 開(kāi)發(fā)環(huán)境
    的頭像 發(fā)表于 09-29 18:00 ?6327次閱讀
    【教程】手把手教你用CLion進(jìn)行<b class='flag-5'>CW32</b>開(kāi)發(fā)

    CW32無(wú)刷電機(jī)控制器# #電路知識(shí) #單片機(jī) #電機(jī)

    單片機(jī)
    efans_24563e
    發(fā)布于 :2025年08月20日 09:38:44

    CW32L011無(wú)刷電機(jī)驅(qū)動(dòng)測(cè)試

    最近網(wǎng)上看到CW32生態(tài)社區(qū)-李工的生態(tài)圈100百元的無(wú)刷電機(jī)驅(qū)動(dòng)開(kāi)源硬件及軟件方案,一不小心申請(qǐng)了一塊,這里記錄初次調(diào)試結(jié)果。開(kāi)源鏈接CW32L011電機(jī)驅(qū)動(dòng)器開(kāi)發(fā)評(píng)估板 - 立創(chuàng)開(kāi)源硬件平臺(tái)
    發(fā)表于 08-16 13:10

    如何使用新版本J-Flash編程CW32 MCU?

    CW32 MCU器件支持包JlinkDevices_WHXY.rar解壓到新建的JlinkDevices子目錄即可。 4、運(yùn)行JFlash.exe,通過(guò)Jlink連接CW32 MCU測(cè)試板,進(jìn)行編程測(cè)試
    的頭像 發(fā)表于 07-01 15:05 ?341次閱讀
    如何使用新版本J-Flash編程<b class='flag-5'>CW32</b> MCU?

    51單片機(jī)筆記(建議收藏?。?/a>

    簡(jiǎn)單匯總下51單片機(jī)的資源和學(xué)習(xí)方法 一頁(yè)紙講清單片機(jī) 也許有人問(wèn):有沒(méi)有那么簡(jiǎn)單呀? 當(dāng)然不會(huì)那么簡(jiǎn)單啦,首先你要把書(shū)讀薄,然后再把書(shū)讀
    發(fā)表于 05-21 17:24

    PLC和單片機(jī)到底什么區(qū)別?

    在自動(dòng)化和嵌入式開(kāi)發(fā)領(lǐng)域,PLC和單片機(jī)是兩種常見(jiàn)的控制系統(tǒng)。雖然它們許多相似之處,但它們的功能、應(yīng)用范圍、開(kāi)發(fā)成本等方面也存在顯著差異。本文將從多個(gè)角度詳細(xì)探討這兩者的不同之處,幫助大家更好地理
    的頭像 發(fā)表于 04-07 11:58 ?3792次閱讀
    PLC和<b class='flag-5'>單片機(jī)</b>到底<b class='flag-5'>有</b>什么區(qū)別?

    代碼+案例+生態(tài):武漢芯源半導(dǎo)體CW32嵌入式開(kāi)發(fā)實(shí)戰(zhàn)正式出版

    尊敬的各位電子工程師、嵌入式開(kāi)發(fā)愛(ài)好者們:大家好!今天,我們懷著無(wú)比激動(dòng)與自豪的心情,向大家宣布一個(gè)重大喜訊——武漢芯源半導(dǎo)體的單片機(jī)CW32正式出書(shū)啦!《基于ARMCortex-M0+的CW32
    的頭像 發(fā)表于 03-03 15:15 ?888次閱讀
    代碼+案例+生態(tài):武漢芯源半導(dǎo)體<b class='flag-5'>CW32</b>嵌入式開(kāi)發(fā)實(shí)戰(zhàn)正式出版

    代碼+案例+生態(tài):武漢芯源半導(dǎo)體CW32嵌入式開(kāi)發(fā)實(shí)戰(zhàn)正式出版

    關(guān)于 CW32 單片機(jī)的書(shū)籍。在這本書(shū)中,我們從最基礎(chǔ)的知識(shí)講起,詳細(xì)介紹了 CW32 單片機(jī)的硬件架構(gòu)、內(nèi)核特性、存儲(chǔ)系統(tǒng)以及各類外設(shè)功能
    發(fā)表于 03-03 15:14

    單片機(jī)學(xué)習(xí)—C51源代碼和Proteus仿真文件

    單片機(jī)學(xué)習(xí)—C51源代碼和Proteus仿真文件.zip, 各種例子
    發(fā)表于 02-10 13:46 ?1次下載

    CW32L010學(xué)習(xí)筆記

    記錄CW32L010學(xué)習(xí)過(guò)程
    的頭像 發(fā)表于 11-15 17:40 ?3797次閱讀
    <b class='flag-5'>CW</b>32L010<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>

    單片機(jī)編程語(yǔ)言哪些選擇

    常用的單片機(jī)編程語(yǔ)言,以及它們的特點(diǎn)和應(yīng)用場(chǎng)景: 1. C語(yǔ)言 特點(diǎn) :C語(yǔ)言是一種通用的編程語(yǔ)言,以其高效性和靈活性而聞名。它提供了豐富的庫(kù)函數(shù)和直接的硬件訪問(wèn)能力,非常適合用于單片機(jī)編程。 應(yīng)用 :C語(yǔ)言是
    的頭像 發(fā)表于 11-01 14:13 ?3304次閱讀

    武漢芯源半導(dǎo)體CW32芯片重慶地區(qū)線下技術(shù)交流會(huì)成功舉辦

    2024年10月19日,武漢芯源半導(dǎo)體授權(quán)CW32生態(tài)社區(qū)主辦的“CW32芯片-重慶地區(qū)技術(shù)交流會(huì)”在重慶市科技工作者眾創(chuàng)之家成功舉辦。此次交流會(huì)匯聚重慶地區(qū)的嵌入式開(kāi)發(fā)工程師和電子信息類企業(yè)代表,共同探討CW32芯片在儀器儀表
    的頭像 發(fā)表于 10-24 10:55 ?1190次閱讀