在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

瑞薩RA產品家族初學者指南-第10章(用FSP配置器和USB中間件增加對USB端口的支持)

瑞薩MCU小百科 ? 來源:瑞薩MCU小百科 ? 作者:瑞薩MCU小百科 ? 2023-01-13 12:15 ? 次閱讀

瑞薩RA產品家族初學者指南》系列文章已收錄成合集!

10. 使用“靈活配置軟件包”通過

USB端口發送數據

本章目錄

使用FSP配置器設置USB端口

創建代碼

在主機端設置接收器

10.2 創建代碼

現在,添加初始化USB端口和執行端口寫入所需的代碼。由于本練習需要輸入大量的內容,建議您通過瑞薩網站從本手冊對應的網頁下載該實驗的解決方案,這樣只需按照說明進行操作,而無需手動輸入代碼。

https://www.renesas.cn/cn/zh/document/gde/1520091

如果決定自行編寫所有內容,首先在“Project Explorer”(項目資源管理器)中通過雙擊打開hal_entry.c文件。為了確保程序正常運行,需要定義多個全局變量。首先,在hal_entry()函數的頭部之前聲明USB驅動程序狀態的枚舉。其類型應該是usb_status_t,可以將其命名為usb_event。接下來,添加一個usb_setup_t類型的結構(在r_usb_basic_api.h中進行聲明),并將其命名為usb_setup。我們稍后將在解碼某些USB事件時使用該變量,該變量將在USB事件循環內進行初始化。

接下來,我們需要一個變量來保存USB模塊的編號。將其設置為uint8_t類型,命名為g_usb_module_number,并為其賦值0x00”。最后,聲明類型為usb_class_t的USB類類型的結構,將其命名為g_usb_class_type,并為其賦值“0x00”。如果要了解我們使用的各種類型的詳細信息,請參見《Renesas靈活配置軟件包 (FSP) 用戶手冊》,該手冊可以從FSP的GitHub網站下載。

添加這些內容后,此部分代碼現在應如下所示:

f9057d8c-92f7-11ed-bfe3-dac502259ad0.jpg

我們自己的代碼也依賴于一些靜態全局變量。請添加到USB全局變量下方:

f9137324-92f7-11ed-bfe3-dac502259ad0.jpg

命名為send_str的字符數組用于保存我們要通過USB發送的文本。將其初始化為LED on ”,因為將LED2切換到“ON”后,將首次使用該變量。下一個變量為s1_pressed,其類型為uint8_t,并需要聲明為volatile,因為其值在用戶按鈕S1的回調例程中將更改為true。默認情況下,其值為false,將由IRQ10中斷的回調例程設置為true,表示已按下該按鈕,因此通知主程序該事件已發生。

如果沒有將該變量聲明為volatile,C編譯器的優化程序可能不會在每次使用該變量時重新讀取其值,因此hal_entry()內部的循環可能無法識別到更改。

第三個變量用于保存LED2的電平,在啟動時應該初始化為BSP_IO_LEVEL_HIGH。每次激活S1時,切換該變量的值。

至此,我們已經聲明了所有的全局變量,可以繼續編寫hal_entry()函數內的代碼。首先,我們需要一個靜態變量,用于保存虛擬UART通信端口的設置,如比特率、停止位和數據位的數量以及奇偶校驗類型。該變量的類型應該是usb_pcdc_linecoding_t,建議將其命名為g_line_coding。將“在此添加您自己的代碼”占位符替換為聲明。稍后將在USB事件處理程序循環中初始化該變量。

f92382fa-92f7-11ed-bfe3-dac502259ad0.jpg

接下來,編寫代碼以打開并啟用外部IRQ10,將其連接到評估板的S1。與第9章一樣,使用IRQ FSP驅動程序的相應函數:

f9309fbc-92f7-11ed-bfe3-dac502259ad0.jpg

啟用中斷后,需要打開USB并獲取類類型和模塊編號。為此,使用r_usb_basic上的g_basic0USB驅動程序模塊的相關函數,并將控制結構傳遞給這些函數,將引用傳遞給配置結構(適用于Open() 函數)和相關的變量。溫馨提示,e2 studio中的代碼補全功能和開發人員幫助可幫助您編寫這些代碼行。

f93d7e62-92f7-11ed-bfe3-dac502259ad0.jpg

中斷和USB端口的初始化現已完成。接下來編寫的所有代碼都應該放置在while(1)循環內,因為這部分程序將循環執行。首先,我們編寫用于獲取和處理端口的USB相關事件的代碼。USB驅動程序關聯多個事件,但為了簡潔起見,僅處理USB_STATUS_REQUEST事件。如果要全面了解事件處理程序,請參見《靈活配置軟件包 (FSP) 用戶手冊》中的USB外設通信設備類(r_usb_pcdc)文檔。在此,可以找到此類處理程序的代碼示例以及流程圖。

現在,您的第一個任務是通過調用R_USB_EventGet()函數來初始化usb_event變量,然后編寫處理程序,只有發生USB_STATUS_REQUEST事件時才能執行該處理程序。在if – then – else結構中,首先設置USB端口,然后確定是否請求線路設置。如果是,通過傳遞g_line_coding變量來配置虛擬UART設置。

如果否,則查詢主機是否要接收UART設置。如果是,請將其發送給主機。最后,如果發生事件,在此不進行處理,直接確認。

下面是我們的處理程序版本的完整代碼:

f96b1e44-92f7-11ed-bfe3-dac502259ad0.jpg

可以看到,在處理程序中LINE_CODING_LENGTH出現兩次。由于我們還沒有定義INE_CODING_LENGTH的值,請返回到文件的頂部,并將其定義為無符號值0x07。

f9785a6e-92f7-11ed-bfe3-dac502259ad0.jpg

返回到while(1)循環中,添加在激活S1后更改LED2電平的代碼,以s1_pressedtrue值表示。類似于第9章中寫入的內容,但此時需要將要通過USB發送的字符串復制到send_str變量,并將s1_pressed變量設置為false:

f98f23d4-92f7-11ed-bfe3-dac502259ad0.jpg

最后要添加的代碼是用于外部IRQ10的回調函數的代碼。將其放置在hal_entry ()函數的括號后面。通過復習第9章,了解回調函數的一些詳細信息。首先,需要導入g_bsp_leds結構,并用其初始化我們的本地Leds變量。然后將s1_pressed設置為true,表示事件已發生,接下來將新值寫入引腳寄存器。最后,利用r_usb_basic模塊的R_USB_Write() API,通過USB端口發送該字符串。

f99cf31a-92f7-11ed-bfe3-dac502259ad0.jpg

還記得USB描述符g_usb_descriptor嗎?現在該描述符將發揮作用。USB需要有關器件、其配置和供應商信息的準確描述。該文件十分復雜,具有長達484行代碼。有關該描述符的說明,請參閱《FSP用戶手冊》的r_usb_basic部分,有關如何構建該描述符的詳細說明,請參見通用串行總線規范2.0版(復制下方網址到瀏覽器中打開查看):

http://www.usb.org/developers/docs/

但這里有兩個捷徑:一個是在本手冊的網站上下載本手冊練習的源文件

https://www.renesas.cn/cn/zh/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ra-book

另一個是使用FSP配置器放置在項目ra目錄下的模板。其名稱為r_usb_pcdc_descriptor.c.template,可以在“項目資源管理”中轉到ra → fsp → src → r_usb_pcdc文件夾進行訪問(參見圖10-10)。將該文件復制到hal_entry.c所在的src文件夾中,并將其重命名為r_usb_descriptor.c。修改供應商ID和產品ID,以便與您自己的產品ID相匹配。如果尚未獲得這些數據,暫時使用值0x045BU0x5310U。到這一步已經完成了要進行的設置和要編寫的代碼。

f9f21a16-92f7-11ed-bfe3-dac502259ad0.jpg

圖10-10:FSP配置器自動創建USB描述符的模板

最后還需要編譯項目。第一次執行此操作需要較長時間,因為需要對項目中包含的所有FSP模塊的代碼進行編譯。在項目編譯完成后,如果沒有任何錯誤和警告,即可連接EK-RA6M4評估板并啟動調試會話。打開“Debug”(調試)透視圖,雙擊“Resume”(恢復)以啟動程序。作為快速測試手段,按一次S1,以查看LED2是否切換。

10.3 在主機端設置接收器

在程序運行的情況下,將第二根USB type A轉Micro-B電纜連接到評估板的系統控制和生態系統訪問區域左下方標有J11的USB端口。將另一端插入Windows工作站,稍等片刻,直到Windows識別該電路板,對其進行枚舉并安裝驅動程序。

啟動終端仿真器程序。在本練習的開發過程中,用到了Tera Term,它是一款非常實用的工具。

復制以下網址在瀏覽器中打開查看:

https://ttssh2.osdn.jp/

在Tera Term中,可以看到列出的CDC串行端口。在圖10-11中顯示為COM3,但在其他PC上可能有所不同。如果不確定,使用Windows的“Device Manager”(設備管理器)來查找電路板所連接的端口。

f9fd0516-92f7-11ed-bfe3-dac502259ad0.jpg

圖10-11:如果Windows正確識別該電路板,它將在Tera Term中列為串行連接

如果沒有列出該電路板,或者“Device Manager”(設備管理器)指示錯誤,則驅動程序可能有問題。請復制以下網址到瀏覽器中打開,參見瑞薩知識庫中有關此主題的最新支持條目以解決此問題:

https://en-support.renesas.com/knowledgeBase/18959077

在已建立連接并運行Tera Term的情況下,多次按下S1,應該可以看到綠色LED2切換,其輸出到終端的狀態如圖10-12所示。

fa06cac4-92f7-11ed-bfe3-dac502259ad0.jpg

圖10-12:在傳輸運行的情況下,每次按下S1時,終端程序都會顯示LED2的狀態

fa119b3e-92f7-11ed-bfe3-dac502259ad0.jpgfa6bf0e8-92f7-11ed-bfe3-dac502259ad0.jpg

您已成功完成本練習!

本章要點:

使用FSP配置器和USB中間件便于增加對USB端口的支持。

要進行USB傳輸,必須具有USB描述符文件。

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

    關注

    146

    文章

    17152

    瀏覽量

    351264
  • usb
    usb
    +關注

    關注

    60

    文章

    7947

    瀏覽量

    264742
  • 瑞薩
    +關注

    關注

    35

    文章

    22309

    瀏覽量

    86339
  • USB端口
    +關注

    關注

    0

    文章

    35

    瀏覽量

    12847
  • FSP
    FSP
    +關注

    關注

    0

    文章

    34

    瀏覽量

    7141

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

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

收藏 人收藏

    評論

    相關推薦

    e2studio(1)----芯片之搭建FSP環境

    為使用電子 RA 系列 ARM 微控制的嵌入式系統設計提供簡單易用且可擴展的高質量軟件。 在全新 Arm? TrustZone? 和其他高級安全功能的
    發表于 09-30 15:28

    MDK中間件 部分 使用方法 初學者

    MDK中間件 部分 使用方法 初學者
    發表于 03-21 13:29

    電子推出兩個全新入門級產品群以擴展RA MCU產品家族, 打造性能、功能和價值的理想組合

    FSP)的支持,該軟件包包含高效的驅動程序和中間件,以簡化通信并提升外設功能。FSP的GUI簡化加速了開發過程,其可以靈活地使用原有代碼,并輕松
    發表于 03-14 15:30

    基于RA4M2的表盤設計

    (FSP),該軟件包包含高效的驅動程序和中間件,以簡化通信并提升外設功能。FSP的GUI簡化加速了開發過程,其可以靈活地使用原有代碼,并輕松支持向其它
    發表于 03-22 19:31

    初學者USB技術入門總結

    初涉學USB初學者USB入門總結 一,概述現在很多的主控上都帶有USB的功能,但是對于初學者來說,這方面應用還是比較棘手,因為
    發表于 04-22 16:57 ?783次閱讀

    關于RA系列MCU

    電子靈活配置軟件包 (FSP) 是一款增強型軟件包,旨在為使用電子
    的頭像 發表于 10-26 10:28 ?1089次閱讀

    RA產品家族初學者指南-9(1)

    RA產品家族初學者指南》系列文章已收錄成合集,
    的頭像 發表于 11-15 12:15 ?732次閱讀

    RA產品家族初學者指南-9(2)

    RA產品家族初學者指南》系列文章已收錄成合集,
    的頭像 發表于 11-15 12:15 ?953次閱讀

    RA產品家族初學者指南-10(1)

    RA產品家族初學者指南》系列文章 已收錄成合集
    的頭像 發表于 01-11 13:10 ?1029次閱讀

    RA產品家族初學者指南-11(1)

    RA產品家族初學者指南》系列文章 已收錄成合集
    的頭像 發表于 01-16 13:25 ?620次閱讀

    RA產品家族初學者指南-11(2)

    RA產品家族初學者指南》系列文章 已收錄成合集
    的頭像 發表于 01-18 12:25 ?734次閱讀

    RA產品家族初學者指南-11(3)

    RA產品家族初學者指南》系列文章 已收錄成合集
    的頭像 發表于 02-03 01:55 ?616次閱讀

    RA產品家族初學者指南-11(4)

    RA產品家族初學者指南》系列文章 已收錄成合集
    的頭像 發表于 02-04 13:15 ?967次閱讀

    RA初學者指南-12【完結篇】

    RA產品家族初學者指南》系列文章 已收錄成合集
    的頭像 發表于 02-08 11:35 ?770次閱讀

    使用e2 studio FSP基于RA2E1定時配置PWM輸出

    電子e2 studio FSP 電子靈活配置軟件包(
    的頭像 發表于 03-10 15:35 ?1429次閱讀
    主站蜘蛛池模板: 五月天婷婷电影| 亚洲国产一区二区三区a毛片| 天天插天天插天天插| 欧美日韩亚洲国产| 日韩a视频| 伊人草| 欧洲性开放大片免费观看视频| 天天摸天天爽天天澡视频| 国模久久| 操操久久| 国产理论| 韩国电影天堂网| 福利天堂| 午夜影视在线免费观看| 成人免费视频一区二区三区| 免费看黄色片的软件| 色综合综合色综合色综合| 伊人啪| 四虎影院观看视频在线观看| 欧美精品成人a多人在线观看| 国产一卡二卡≡卡四卡无人| 久久成人亚洲| 福利片第一页| 手机看片久久青草福利盒子| 五月天婷婷亚洲| 自拍中文字幕| 奇米影视大全| tueb69xxxxxhd日本| 中文字幕欧美日韩| 日韩免费观看的一级毛片| 黄色伊人| 国产你懂的在线观看| 午夜在线视频免费观看| 亚洲午夜精品久久久久久人妖| 热门国产xvideos中文| 黄色网页在线观看| 永久网站色视频在线观看免费| 日本黄色免费| 免费人成网555www| 成人午夜性视频欧美成人| 色花堂国产精品首页第一页|