內(nèi)容簡(jiǎn)介
本文利用星閃BS25開(kāi)發(fā)板NL001測(cè)試一下官方sdk中的外設(shè)程序,以便熟悉外設(shè)的基本操作。
測(cè)試工具
Operating system:Windows 10 home
deveco-device-tool-all-in-one:1.1.1_beta2
DevTools_CFBB:1.0.5
Compiler:CFBB IDE 1.0.3
Sdk:20230928
BurnTool:5.0.34
DebugKits_CFBB:3.0.98
Python:3.8.10
VSCode:1.66.2
Here we go
本文通過(guò)寫(xiě)一個(gè)程序讓這塊開(kāi)發(fā)板上的三顆LED輪流點(diǎn)亮:
這幾顆LED從下往上分別連接了BS25的S_AGPIO12、S_AGPIO07和S_MGPIO30,并且當(dāng)GPIO輸出高電平時(shí)LED會(huì)點(diǎn)亮。
我們采用blinky程序進(jìn)行修改。先“pythonbuild.py standard-bs25-app-evb menuconfig”配置工程為blinky:
然后打開(kāi)blinky_cmsis.c,修改以下代碼:
#defineLED_R S_AGPIO12
#defineLED_B S_AGPIO7
#defineLED_W S_MGPIO30
staticvoid *blinky_task(constchar *arg)
{
unused(arg);
uapi_pin_set_mode(LED_R, HAL_PIO_FUNC_GPIO);
uapi_gpio_set_dir(LED_R, GPIO_DIRECTION_OUTPUT);
uapi_gpio_set_val(LED_R, GPIO_LEVEL_LOW);
uapi_pin_set_mode(LED_B, HAL_PIO_FUNC_GPIO);
uapi_gpio_set_dir(LED_B, GPIO_DIRECTION_OUTPUT);
uapi_gpio_set_val(LED_B, GPIO_LEVEL_LOW);
uapi_pin_set_mode(LED_W, HAL_PIO_FUNC_GPIO);
uapi_gpio_set_dir(LED_W, GPIO_DIRECTION_OUTPUT);
uapi_gpio_set_val(LED_W, GPIO_LEVEL_LOW);
while (1)
{
osDelay(1000);
uapi_gpio_set_val(LED_R, GPIO_LEVEL_HIGH);
uapi_gpio_set_val(LED_B, GPIO_LEVEL_LOW);
uapi_gpio_set_val(LED_W, GPIO_LEVEL_LOW);
osDelay(1000);
uapi_gpio_set_val(LED_R, GPIO_LEVEL_LOW);
uapi_gpio_set_val(LED_B, GPIO_LEVEL_HIGH);
uapi_gpio_set_val(LED_W, GPIO_LEVEL_LOW);
osDelay(1000);
uapi_gpio_set_val(LED_R, GPIO_LEVEL_LOW);
uapi_gpio_set_val(LED_B, GPIO_LEVEL_LOW);
uapi_gpio_set_val(LED_W, GPIO_LEVEL_HIGH);
}
returnNULL;
}
完成后rebuild工程,燒錄到板子中測(cè)試,發(fā)現(xiàn)LED根本不亮。
拿示波器分別測(cè)試三個(gè)IO口,發(fā)現(xiàn)電平是有變化的,所以懷疑是驅(qū)動(dòng)能力不夠,檢查硬件大概是這樣的情況:
所以驅(qū)動(dòng)能力不夠是很有可能的。
嘗試使用pinctrl來(lái)設(shè)置驅(qū)動(dòng)能力和上下拉:
也沒(méi)有把LED點(diǎn)亮。
后來(lái)測(cè)試發(fā)現(xiàn),是限流電阻太大,然后GPIO的電壓也只有1.8V,開(kāi)發(fā)板上的B和W兩顆LED點(diǎn)亮電壓高于1.8V的,所以導(dǎo)致了無(wú)法驅(qū)動(dòng)的問(wèn)題,程序本身應(yīng)該是沒(méi)啥問(wèn)題的。
所以把LED R前的電阻短路掉,就可以正常點(diǎn)亮R這顆LED了(加不加上面的pinctrl代碼都可以點(diǎn)亮),而另外兩顆由于電壓的關(guān)系無(wú)法點(diǎn)亮。
最終跟開(kāi)發(fā)板商家確認(rèn)了,NL001版本的開(kāi)發(fā)板在LED那塊設(shè)計(jì)是存在缺陷的,問(wèn)題會(huì)在后面版本中修復(fù)。當(dāng)然,手頭的NL001只能自己改一下電阻和LED來(lái)解決問(wèn)題了。。。
審核編輯:湯梓紅
-
程序
+關(guān)注
關(guān)注
117文章
3787瀏覽量
81038 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5050瀏覽量
97456 -
SDK
+關(guān)注
關(guān)注
3文章
1036瀏覽量
45936 -
星閃
+關(guān)注
關(guān)注
6文章
121瀏覽量
599
原文標(biāo)題:遙遙領(lǐng)先,星閃芯片BS25外設(shè)程序測(cè)試--Blinky
文章出處:【微信號(hào):TalkBT,微信公眾號(hào):藍(lán)牙】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論