1.實(shí)驗(yàn)?zāi)康?/p>
2.環(huán)境搭建
3.實(shí)驗(yàn)結(jié)果與代碼分析
4.調(diào)用層次分析
1.實(shí)驗(yàn)?zāi)康谋緦?shí)驗(yàn)主要在rv-star的板子上點(diǎn)亮RGB燈。
通過一個(gè)簡單的GPIO操作實(shí)驗(yàn),分析RISCV MCU目前的編程模型。
2.環(huán)境搭建實(shí)驗(yàn)下載操作可以按照我之前的文章來操作
首先導(dǎo)入工程

然后選擇工程
調(diào)試選擇openocd

最后,直接下載即可。
3.實(shí)驗(yàn)結(jié)果與代碼分析入口在main函數(shù)
main函數(shù)中調(diào)用了led_config();函數(shù)
該函數(shù)的實(shí)現(xiàn)如下:
void led_config(void)
{
for(int i=0; i《LEDn; i++)
{
gd_rvstar_led_init(i);
gd_rvstar_led_on(i);
delay_1ms(1000);
gd_rvstar_led_off(i);
}
}
首先LEDn在gd32vf103_rvstar.h中
/* rvstar board low layer led */
#define LEDn 3U
定義了三個(gè)LED。
接著調(diào)用gd_rvstar_led_init初始化gpio。
其實(shí)際的實(shí)現(xiàn)可以看如下的代碼
/* Defines for LED functio/* Defines for LED / Key functions to new / general API */
#define gd_rvstar_led_init gd_led_init
#define gd_rvstar_led_on gd_led_on
#define gd_rvstar_led_off gd_led_off
#define gd_rvstar_led_toggle gd_led_toggle
實(shí)際上執(zhí)行的是gd_led_init,現(xiàn)在看看該函數(shù)的實(shí)現(xiàn)
/* eval board low layer private functions */
/*!
* rief configure led GPIO
* param[in] lednum: specify the led to be configured
* arg LED1
* param[out] none
*
etval none
*/
void gd_led_init(led_typedef_enum lednum)
{
/* enable the led clock */
rcu_periph_clock_enable(`[lednum]);
/* configure led GPIO port */
gpio_init(GPIO_PORT[lednum], GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN[lednum]);
GPIO_BOP(GPIO_PORT[lednum]) = GPIO_PIN[lednum];
}
首先調(diào)用rcu_periph_clock_enable初始化對(duì)于的GPIO時(shí)鐘。
對(duì)于GPIO_CLK有如下的定義。
static const rcu_periph_enum GPIO_CLK[LEDn] = {LEDG_GPIO_CLK,LEDB_GPIO_CLK,LEDR_GPIO_CLK};
#define LEDG_PIN GPIO_PIN_1
#define LEDG_GPIO_PORT GPIOA
#define LEDG_GPIO_CLK RCU_GPIOA
#define LEDB_PIN GPIO_PIN_3
#define LEDB_GPIO_PORT GPIOA
#define LEDB_GPIO_CLK RCU_GPIOA
#define LEDR_PIN GPIO_PIN_2
#define LEDR_GPIO_PORT GPIOA
#define LEDR_GPIO_CLK RCU_GPIOA
簡單的說,就是LED綠燈對(duì)應(yīng)的是PA1,LED藍(lán)燈對(duì)應(yīng)PA3,LED紅燈對(duì)應(yīng)PA2。
查看原理圖

對(duì)應(yīng)芯片的引腳

不難看出,操作一個(gè)gpio的流程主要是三部分
1.設(shè)置GPIO時(shí)鐘
2.設(shè)置初始化設(shè)置GPIO
3.操作對(duì)應(yīng)的GPIO位
4.調(diào)用層次分析main--》gd32vf103_rvstar--》gd32vf103_xx.c--》寄存器操作
所以如果需要自己實(shí)現(xiàn)板子的定義,只需要修改gd32vf103_rvstar中間層即可。
原文標(biāo)題:rv-star RGB LED燈實(shí)驗(yàn)
文章出處:【微信公眾號(hào):嵌入式IoT】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
led
+關(guān)注
關(guān)注
243文章
24596瀏覽量
690894
原文標(biāo)題:rv-star RGB LED燈實(shí)驗(yàn)
文章出處:【微信號(hào):Embeded_IoT,微信公眾號(hào):嵌入式IoT】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
在rv-star板子上點(diǎn)LED燈實(shí)驗(yàn)
評(píng)論