轉自RA生態(tài)工作室
“RA MCU眾測寶典”環(huán)境搭建專題更新啦!這次我們聚焦【FPB-RA0E2】開發(fā)板,一步步打通開發(fā)“第一關”,為后續(xù)功能開發(fā)筑牢基礎。
開啟寶典
01.FPB-RA0E2開發(fā)板簡介
FPB-RA0E2是一款針對RA0E2系列微控制器(MCU)的快速原型板,旨在幫助用戶無縫評估RA0E2 MCU的各項特性,并利用靈活配置軟件包(FSP)和e2studio集成開發(fā)環(huán)境來開發(fā)嵌入式系統(tǒng)應用。
該板卡的核心是基于ArmCortex-M23內核、主頻32MHz的R7FA0E2094CFM微控制器,配備了128KB代碼閃存和16KB SRAM。在系統(tǒng)功能層面,它集成了多種時鐘源、用于精確功耗測量的電流測量點、一個板載調試器(SWD)、USB Type-C接口、用戶LED和按鈕。尤為關鍵的是,該開發(fā)板提供了強大的生態(tài)系統(tǒng)擴展能力,同時兼容Digilent Pmod和Arduino(UNO R3)兩種流行的接口標準,使開發(fā)者可以方便地連接各類外設和擴展板,從而快速將創(chuàng)意轉化為實際產(chǎn)品。

02開發(fā)環(huán)境搭建
首先,需要下載e2studio。下載地址如下:
下載e2studio
https://www.renesas.com/en/software-tool/e-studio?srsltid=AfmBOoqRmLqCRqEFXlE7lYL88hcZdWgQCaE6kPwMr4tdSUvFGh0Jsf9j#downloads
需要下載最近的版本:

其次、需要下載FSP,建議下載最新v6.0.0,最新的v6.0.0增加了很多對FPB-RA0E2的支持。


下載地址:
下載FSP v6.0.0
https://github.com/renesas/fsp

03新建項目
在e2studio的主界面,點擊頂部菜單欄的文件(F)。
在下拉菜單中,將鼠標移動到新建(N)上。
最后,在右側的菜單中點擊Renesas RA。

在彈出的“新建C/C++項目”窗口中,您會看到可用的項目模板。
選擇第二個選項:Renesas RA FSP Solution。這個模板用于創(chuàng)建基于Renesas FSP(Flexible Software Package)的完整解決方案,是開發(fā)RA系列微控制器的推薦方式。
選擇后,點擊下一步(N)按鈕繼續(xù)

在“Renesas RA FSP Solution”窗口中,您需要設置項目名稱和存儲位置。
在Project name(項目名稱)輸入框中,輸入您的項目名稱,例如圖中所示的led3。
通常保持勾選使用缺省位置(D),這樣項目就會被創(chuàng)建在e2studio的默認工作空間中。
設置好名稱后,點擊下一步(N)。

在Board(開發(fā)板)的下拉列表中,找到并選擇您的目標開發(fā)板,根據(jù)圖中的高亮選擇,這里選FPB-RA0E2。
在Toolchains(工具鏈)部分,確保項目使用的編譯器是GNU ARM Embedded。
在下方的工具鏈版本選擇框中,選擇您已經(jīng)安裝并希望使用的版本。
完成以上配置后,點擊完成(F)按鈕(圖中未顯示,但這是最后一步)。

04GPIO控制
實現(xiàn)2個LED等不同閃爍。
一個實現(xiàn)1s的反轉,一個實現(xiàn)呼吸效果。使用的是GPIO操作。

05程序
左右滑動查看完整內容
[/p][p][code][/p][p]#include"hal_data.h"[/p][p]void R_BSP_WarmStart(bsp_warm_start_event_t event);[/p][p]extern bsp_leds_t g_bsp_leds;[/p][p]void hal_entry (void)[/p][p]{[/p][p]#ifBSP_TZ_SECURE_BUILD[/p][p] R_BSP_NonSecureEnter();[/p][p]#endif[/p][p] if(g_bsp_leds.led_count < 2)[/p][p] ? ?{[/p][p] ? ? ? ?while?(1);[/p][p] ? ?}[/p][p] ? ?bsp_io_port_pin_t led1_pin = (bsp_io_port_pin_t) g_bsp_leds.p_leds[BSP_LED_LED1];[/p][p] ? ?bsp_io_port_pin_t led2_pin = (bsp_io_port_pin_t) g_bsp_leds.p_leds[BSP_LED_LED2];[/p][p] ? ?const uint32_t LOOP_TICK_MS = 1;[/p][p] ? ?const uint32_t PWM_PERIOD_MS = 20;[/p][p] ? ?const uint32_t BRIGHTNESS_STEPS = 100;[/p][p] ? ?const uint32_t BREATHE_STEP_INTERVAL_MS = 20;[/p][p] ? ?uint32_t brightness = 0;[/p][p] ? ?int8_t breathe_direction = 1;[/p][p] ? ?uint32_t breathe_step_counter = 0;[/p][p] ? ?const uint32_t BLINK_INTERVAL_MS = 1000;[/p][p] ? ?bsp_io_level_t led2_state = BSP_IO_LEVEL_LOW;[/p][p] ? ?uint32_t blink_counter = 0;[/p][p] ? ?R_BSP_PinAccessEnable();[/p][p] ? ?R_BSP_PinWrite(led2_pin, led2_state);[/p][p] ? ?while?(1)[/p][p] ? ?{[/p][p] ? ? ? ?uint32_t on_time_ms = (PWM_PERIOD_MS * brightness) / BRIGHTNESS_STEPS;[/p][p] ? ? ? ?uint32_t current_pwm_phase = (breathe_step_counter + blink_counter) % PWM_PERIOD_MS;[/p][p] ? ? ? ?if?(current_pwm_phase < on_time_ms)[/p][p] ? ? ? ?{[/p][p] ? ? ? ? ? ?R_BSP_PinWrite(led1_pin, BSP_IO_LEVEL_HIGH);[/p][p] ? ? ? ?}[/p][p] ? ? ? ?else[/p][p] ? ? ? ?{[/p][p] ? ? ? ? ? ?R_BSP_PinWrite(led1_pin, BSP_IO_LEVEL_LOW);[/p][p] ? ? ? ?}[/p][p] ? ? ? ?breathe_step_counter += LOOP_TICK_MS;[/p][p] ? ? ? ?if?(breathe_step_counter >= BREATHE_STEP_INTERVAL_MS)[/p][p] {[/p][p] breathe_step_counter = 0;[/p][p] brightness += breathe_direction;[/p][p] if(brightness >= BRIGHTNESS_STEPS)[/p][p] {[/p][p] brightness = BRIGHTNESS_STEPS;[/p][p] breathe_direction = -1;[/p][p] }[/p][p] elseif(brightness == 0)[/p][p] {[/p][p] breathe_direction = 1;[/p][p] }[/p][p] }[/p][p] blink_counter += LOOP_TICK_MS;[/p][p] if(blink_counter >= BLINK_INTERVAL_MS)[/p][p] {[/p][p] blink_counter = 0;[/p][p] led2_state = (led2_state == BSP_IO_LEVEL_LOW) ? BSP_IO_LEVEL_HIGH : BSP_IO_LEVEL_LOW;[/p][p] R_BSP_PinWrite(led2_pin, led2_state);[/p][p] }[/p][p] R_BSP_SoftwareDelay(LOOP_TICK_MS, BSP_DELAY_UNITS_MILLISECONDS);[/p][p] }[/p][p]}[/p][p]void R_BSP_WarmStart (bsp_warm_start_event_t event)[/p][p]{[/p][p] if(BSP_WARM_START_RESET == event)[/p][p] {[/p][p]#ifBSP_FEATURE_FLASH_LP_VERSION != 0[/p][p] R_FACI_LP->DFLCTL = 1U;[/p][p]#endif[/p][p] }[/p][p] if(BSP_WARM_START_POST_C == event)[/p][p] {[/p][p] R_IOPORT_Open(&IOPORT_CFG_CTRL, &IOPORT_CFG_NAME);[/p][p] }[/p][p]}[/p][p] 復制代碼
06效果

如果在工具安裝、項目配置中遇到阻礙,或是有更高效的搭建技巧,歡迎在評論區(qū)分享交流~環(huán)境搭建專題會持續(xù)補充更多RA系列開發(fā)板的實操指南,讓嵌入式開發(fā)起步更順暢!
-
mcu
+關注
關注
147文章
18813瀏覽量
393744 -
瑞薩
+關注
關注
37文章
22466瀏覽量
90110 -
開發(fā)板
+關注
關注
26文章
6226瀏覽量
116211 -
開發(fā)環(huán)境
+關注
關注
1文章
266瀏覽量
17592
原文標題:RA MCU眾測寶典 | 環(huán)境搭建之【FPB-RA0E2】開發(fā)環(huán)境搭建
文章出處:【微信號:瑞薩嵌入式小百科,微信公眾號:瑞薩嵌入式小百科】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
瑞薩FPB-RA0E2開發(fā)板簡介及環(huán)境搭建指南
評論