色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

如何編寫代碼以切換EK上的用戶LED

瑞薩MCU小百科 ? 來源:瑞薩MCU小百科 ? 作者:瑞薩MCU小百科 ? 2022-10-25 14:20 ? 次閱讀

8. Hello World! – Hi Blinky!

您將在本章中學到以下內容:

如何從頭開始為EK-RA6M4評估板創建項目。

如何在FSP配置器中更改靈活配置軟件包的設置。

如何編寫代碼以切換EK上的用戶LED

如何下載和測試程序。

本章目錄:

使用項目配置器創建項目

使用FSP配置器設置運行環境

編寫前幾行代碼

編譯第一個項目

下載和調試第一個項目

8.3 編寫前幾行代碼

獲取所有自動生成的文件之后,接下來查看創建的內容。IDE左側的“Project Explorer”(項目資源管理器)列出了當前包含的所有內容。Ra_gen文件夾保存通道號等配置集。Src目錄包含一個名為hal_entry.c的文件。這是稍后要編輯的文件。請注意,盡管在ra_gen文件夾中有一個名為main.c的文件,但用戶代碼必須轉到hal_entry.c中。否則,如果您在FSP配置器中進行修改并重新創建項目內容,則更改會丟失,因為每次單擊“Generate Project Content”(生成項目內容)時,都將覆蓋該文件。

3a6e73c0-541c-11ed-a3b6-dac502259ad0.jpg

圖8-9:FSP配置器創建所需文件后的項目樹

該項目還包含幾個名稱中帶有“ra”或“fsp”的目錄,其中包含FSP的源文件、包含文件和配置文件。通常的規則是,不得修改這些文件夾(和子文件夾)的內容。其中包含由配置器生成的文件,在此所做的任何更改都將在下次生成或刷新項目內容時丟失。用戶可編輯的源文件是直接位于src文件夾或您添加的任何其他文件夾的根目錄中的文件。

接下來,為RA產品家族單片機編寫第一個真實源代碼。計劃是在EK-RA6M4評估板上的綠色LED2和紅色LED3之間每秒交替切換,因此您必須通過添加代碼來點亮和熄滅LED以及實現延時循環。如何實現?

實際上有兩種選擇:一種是通過接口函數來使用API,另一種是使用BSP實現函數。您認為哪一種更好?如果您不確定答案,可以回顧第2章。

如果查看文件ra_gencommon_data.c中的代碼,則會發現I/O端口驅動程序實例g_ioport具有以下定義:

3a8c56d8-541c-11ed-a3b6-dac502259ad0.jpg

g_ioport_on_ioport是一個結構體,用于聲明端口可能執行的操作,將分配給g_ioport實例的API指針。將鼠標懸停在該結構體上,可以輕松查看其中的內容,此結構體顯示了其成員之一(.pinWrite)是指向引腳寫入函數的指針。

因此,要點亮LED,可以寫入:

3aa78da4-541c-11ed-a3b6-dac502259ad0.jpg

但這意味著實際上需要知道LED2和LED3連接到哪些I/O端口,以及有多少個LED可用!為此,我們可以閱讀電路板的文檔或仔細檢查原理圖以找到正確的端口。或者,也可以只依靠FSP。創建類型為bsp_leds_t的結構體(在board_leds.h中聲明)并為其分配在board_leds.c中定義的全局BSP結構體g_bsp_leds即可解決問題。這兩個文件均位于項目的raoards a6m4_ek文件夾內。因此,以下兩行代碼足以獲取有關評估板上LED的信息

3aba3e0e-541c-11ed-a3b6-dac502259ad0.jpg

現在,可以使用LED結構體來訪問電路板上的所有LED,并使用以下語句點亮綠色LED2(將端口設置為低電平將點亮LED,將端口設置為高電平則將熄滅LED):

3acb5e64-541c-11ed-a3b6-dac502259ad0.jpg

此語句后需要有第二條語句,用于將其引腳設置為高電平以熄滅LED3。

最后,需要提供一段延時以使LED以用戶友好的方式切換。為此,可以再次調用BSP API:

3aea1584-541c-11ed-a3b6-dac502259ad0.jpg

R_BSP_SoftwareDelay函數的第一個參數是要延遲的單位數,而第二個參數是指定的基本單位,在本例中為秒。其他選項包括毫秒和微秒。

完成這些操作后,接下來要做的是復制/粘貼三行代碼,并反轉第二組中LED的引腳電平。最后,由于我們想無限期地運行程序,因此必須圍繞代碼創建一個while(1)循環。

目前,還需要執行的操作是將以下代碼行直接輸入到hal_entry.c文件中的函數簽名之后,替換/* TODO: add your own code here */行。對于由項目配置器和FSP配置器插入的其他代碼,請保持不變。單片機需要借助這些代碼來正常運行。

3afcdd40-541c-11ed-a3b6-dac502259ad0.jpg

編寫代碼時,始終可以使用e2 studio的自動完成功能。只需按下-,便會出現一個窗口,顯示結構體或函數可能的補全代碼。如果單擊一個條目,它會被自動插入代碼中。

3b1871c2-541c-11ed-a3b6-dac502259ad0.jpg

圖8-10:在變量或函數上按下-將激活e2 studio的代碼補全功能

編寫程序時,另一個有用的工具是“Developer Assistance”(開發人員幫助),可以從“Project Explorer”(項目資源管理器)中訪問此工具。在使用FSP配置器配置了項目的軟件堆棧之后,此工具將為您快速了解應用程序代碼提供支持。要訪問“Developer Assistance”(開發人員幫助),請先在“Project Explorer”(項目資源管理器)中展開項目,此工具隨即顯示。顯示工具后,進一步展開樹,直到看到堆棧模塊及其API。選擇要使用的API,然后將對該API的調用拖放到源文件中。

現在輪到您進行操作:請將上面的代碼行輸入到項目hal_entry.c文件中。為此,展開項目的src文件夾,然后雙擊上述文件。此操作會在編輯器中將其打開。如果您不想自己輸入所有內容,也可以掃描下方二維碼進入本手冊的網站下載完整的項目。

8.4 編譯第一個項目

輸入所有內容后,便可隨時編譯程序。編譯有兩種不同的配置:調試和發布。調試配置將包含調試程序所需的所有信息,例如變量和函數名,并且還將關閉編譯器的某些優化,例如循環展開。這會使調試更加容易,但會增大代碼大小、減慢代碼執行速度。發布配置將從輸出文件中除去所有這些信息,并開啟完全優化,從而減小代碼大小、加快代碼執行速度,但是,您再也無法執行查看變量等操作(除非您知道它們在存儲器中的地址)。

對于第一個測試,可以采用調試配置(也是默認配置)。要編譯項目,單擊主菜單欄3b81f5a2-541c-11ed-a3b6-dac502259ad0.jpg上的“build”(編譯)按鈕,編譯過程隨即開始。如果一切正常,編譯將以0個錯誤和0個警告結束。如果存在編譯時錯誤,則需要返回代碼,仔細檢查是否正確輸入了所有內容。如果未正確輸入所有內容,請相應地更改代碼。為了讓您更輕松地定位錯誤,編譯器的反饋將直接插入編輯器窗口(如果可能)。

程序編譯成功后,會創建輸出文件MyBlinkyProject.elf,需要先將其下載到處理器,然后才能運行和調試該文件。

8.5 下載和調試第一個項目

下一步是在評估板(EK)上實際運行程序。現在需要將評估板連接到Windows工作站:將電路板隨附的USB線纜的micro-B端插入系統控制和生態系統訪問區域右下角的USB調試端口J10,將另一端插入PC上的空閑端口。白色LED4(構成文字“EK-RA6M4”中的連字符)應點亮,表示電路板已通電。如果該評估板支持開箱即用,則預編程的演示會運行,表明一切都按預期運行。Windows操作系統可能會顯示一個對話框,指示正在安裝J-Link板上調試器的驅動程序,此過程應自動完成。此外,還可能會出現一個窗口,詢問是否更新J-Link調試器。強烈建議允許進行此更新。

如果USB端口旁邊的橙色調試LED5在短時間內不停地閃爍,則表示工作站上的J-Link驅動程序可能有問題。如果發生這種情況,請參見第7.1節獲取可能的解決方案。

下載

要下載程序,必須先創建一個調試配置。單擊“Debug”(調試)符號3b98b526-541c-11ed-a3b6-dac502259ad0.jpg旁邊的小箭頭,然后從下拉列表框中選擇“Debug Configurations”(調試配置)。

在出現的窗口中,突出顯示“Renesas GDB Hardware Debugging”(瑞薩GDB硬件調試)下的MyBlinkyProject Debug_Flat。由于項目配置器已經進行了所有必要的設置,因此無需在此對話框中進行任何更改。只需單擊窗口右下角的“Debug”(調試)。此操作會啟動調試器,將代碼下載到EK上的RA6M4 MCU,并詢問您是否要切換到“Debug Perspective”(調試透視圖)。請選擇“Switch”(切換)。“Debug Perspective”(調試透視圖)將打開,并且程序計數器將設置為程序的入口點,即復位處理程序。此調試配置僅需要創建一次。下次只需單擊“Debug”(調試)符號3ba89126-541c-11ed-a3b6-dac502259ad0.jpg便可啟動調試器。

3bbe010a-541c-11ed-a3b6-dac502259ad0.jpg

圖8-11:選擇MyBlinkyProject Debug_flat后,無需在其他選項卡上進行任何更改

運行

單擊“Resume”(恢復)按鈕3bded2fe-541c-11ed-a3b6-dac502259ad0.jpg,下一個停止處將處于main()中調用hal_entry()的位置。再次單擊該按鈕,程序將繼續執行,并按預期的1秒時間間隔在評估板上的綠色和紅色LED之間切換。

觀察結果

如果一切正常,單擊主菜單欄上的“Suspend”(暫停)3bf43914-541c-11ed-a3b6-dac502259ad0.jpg?按鈕。這將停止執行程序但不會將其終止。在編輯器視圖中,激活文件hal_entry.c的選項卡,然后右鍵單擊包含對端口的寫操作的其中一行;在出現的菜單中,選擇“Run to line”(運行至指定行)。執行將恢復,程序將在單擊的行處停止。現在來看一下右側包含變量的視圖。您將看到列出的Leds結構體。將其展開,瀏覽和分析不同的字段。調試較大的項目時,此視圖會派上用場。

3c03ce10-541c-11ed-a3b6-dac502259ad0.jpg

圖8-12:變量及其值可以在“Variables”(變量)視圖中進行檢查

最后一步是單擊“Terminate”(終止)按鈕3c24c0ac-541c-11ed-a3b6-dac502259ad0.jpg,結束調試會話,以停止程序的執行。

您已經掌握了RA產品家族單片機的第一個程序!

本章要點:

項目配置器將創建新項目所需的所有文件和設置。

FSP配置器允許編程人員基于圖形用戶界面輕松配置FSP和運行環境。

調試配置是調試項目的必需步驟。它會自動創建,只需要激活即可。

實現所需功能僅需要很少的代碼行。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    242

    文章

    23307

    瀏覽量

    661542
  • 代碼
    +關注

    關注

    30

    文章

    4801

    瀏覽量

    68735
  • FSP
    FSP
    +關注

    關注

    0

    文章

    34

    瀏覽量

    7145
  • 配置器
    +關注

    關注

    0

    文章

    26

    瀏覽量

    11656

原文標題:瑞薩RA產品家族初學者指南-第8章(2)

文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何利用代碼編寫編寫MSP430程序實現LED閃爍

    在本教程中,我們將了解代碼編輯器工作室以及如何使用它來編程 MSP430。本教程是為初學者編寫的,除了 MSP430 板和計算機外,不需要任何硬件。在本教程結束時,我們將能夠閃爍MSP430的板載LED
    的頭像 發表于 11-14 16:13 ?5443次閱讀
    如何利用<b class='flag-5'>代碼</b><b class='flag-5'>編寫</b>器<b class='flag-5'>編寫</b>MSP430程序實現<b class='flag-5'>LED</b>閃爍

    如何編寫控制LED燈的亮滅程序代碼

    【藍橋杯單片機 控制LED燈電路經典程序】(2)接上篇:一篇(1)中只介紹了控制LED燈的電路,138譯碼器打通573鎖存器,鎖存器再控制八路LED燈。這篇主要介紹如何
    發表于 12-02 06:23

    LED基礎模塊的程序代碼該怎樣去編寫

    LED基礎模塊的程序代碼該怎樣去編寫呢?蜂鳴器基礎模塊的程序代碼該怎樣去編寫呢?
    發表于 01-25 06:37

    為什么用NUCLEO板編寫的中斷代碼觸發LED會失敗呢

    我正在嘗試使用我的 NUCLEO 板(PC13)用戶按鈕編寫一個中斷代碼來觸發 LED(PB14)。然而,正如我從調試器中觀察到的那樣,
    發表于 12-08 07:03

    如何編寫Arm匯編代碼

    大多數開發人員使用高級語言(如C和C++)編寫大部分代碼。然后將此高級源代碼編譯為在目標設備運行的機器代碼。 然而,有時
    發表于 08-02 13:01

    編寫高效Lua代碼的方法

    編寫高效Lua代碼的方法
    發表于 02-07 21:04 ?0次下載

    編寫一個閃爍LED代碼

    電子發燒友網站提供《編寫一個閃爍LED代碼.zip》資料免費下載
    發表于 10-24 10:55 ?2次下載
    <b class='flag-5'>編寫</b>一個閃爍<b class='flag-5'>LED</b>燈<b class='flag-5'>代碼</b>

    EK-RA4W1 用戶手冊

    EK-RA4W1 用戶手冊
    發表于 02-02 18:41 ?0次下載
    <b class='flag-5'>EK</b>-RA4W1 <b class='flag-5'>用戶</b>手冊

    使用RESET按鈕切換LED實現快速用例

    電子發燒友網站提供《使用RESET按鈕切換LED實現快速用例.zip》資料免費下載
    發表于 02-06 14:36 ?0次下載
    使用RESET按鈕<b class='flag-5'>切換</b><b class='flag-5'>LED</b><b class='flag-5'>以</b>實現快速用例

    如何使用參數化編寫可重用的verilog代碼

    ,因為我們可以更輕松地將代碼從一個設計移植到另一個設計。 我們在verilog中有兩個可用的結構,可以幫助我們編寫可重用的代碼 - 參數化和generate語句。這兩種結構都允許我們創建更通用的
    的頭像 發表于 05-11 15:59 ?1141次閱讀

    在MicroROS開發板編寫HelloWord代碼

    你好,我是愛吃魚香ROS的小魚。這一節我們正式在MicroROS開發板編寫代碼,輸出HelloWorld到電腦。在正式開始編寫
    的頭像 發表于 07-02 15:38 ?1289次閱讀
    在MicroROS開發板<b class='flag-5'>上</b><b class='flag-5'>編寫</b>HelloWord<b class='flag-5'>代碼</b>

    EK-RA4W1 用戶手冊

    EK-RA4W1 用戶手冊
    發表于 07-03 21:00 ?0次下載
    <b class='flag-5'>EK</b>-RA4W1 <b class='flag-5'>用戶</b>手冊

    FPGA的Verilog代碼編寫規范

      注:R起頭的是對編寫Verilog代碼的IP設計者所做的強制性規定,G起頭的條款是建議采用的規范。每個設計者遵守本規范可鍛煉命名規范性。
    的頭像 發表于 08-15 16:23 ?2248次閱讀

    SAM9X60-EK用戶指南

    電子發燒友網站提供《SAM9X60-EK用戶指南.pdf》資料免費下載
    發表于 09-20 09:43 ?0次下載
    SAM9X60-<b class='flag-5'>EK</b><b class='flag-5'>用戶</b>指南

    兩款LED線性恒流控制芯片:SM2212EK和SM2213EK的對比

    SM2212EK和SM2213EK都是屬于LED線性恒流控制芯片,那么,這兩款芯片的區別在哪里?下面就來分析對比一下。 SM2212EKLED
    的頭像 發表于 11-08 16:27 ?414次閱讀
    兩款<b class='flag-5'>LED</b>線性恒流控制芯片:SM2212<b class='flag-5'>EK</b>和SM2213<b class='flag-5'>EK</b>的對比
    主站蜘蛛池模板: 中文字幕一区二区视频| 龙广在线收听| 亚洲国产成人私人影院| 美女丝袜夹b| 国产午夜亚洲精品区| jj插入bb| 一个人的免费高清影院| 日本人69xxx| 男人一生要读的书| 久久不射视频| 国产精品亚洲精品久久国语| jizzjizz丝袜| 中文字幕天堂久久精品| 羲义嫁密着中出交尾gvg794| 欧洲美女高清一级毛片| 麻豆国产人妻欲求不满| 精品人伦一区二区三区潘金莲| 光溜溜的美女直播软件| 91日本在线观看亚洲精品| 亚洲人成77777在线视频| 污污又黄又爽免费的网站| 强奷表妺好紧2| 欧美xxxx83d| 美女被艹网站| 恋孩癖网站大全在线观看| 精品免费在线视频| 黄色天堂在线| 国产主播AV福利精品一区| 国产69精品久久久久观看软件| AV午夜午夜快憣免费观看| 123成人站| 综合人妻久久一区二区精品| 一级毛片西西人体44rt高清| 亚洲黄色官网| 3DNagoonimation动漫| 亚洲精品一本之道高清乱码| 无限资源在线观看高清| 三级全黄a| 色婷婷AV99XX| 玩高中女同桌肉色短丝袜脚文 | 色播播影院|