开发板:新唐NK-980IOT V1.0
开发工具:RT-Thread Studio 2.1.5;NUWriter 1.0.0.1
感谢RT-Thread提供的测评机会,也感谢新唐科技提供这么好的开发板,首先介绍一下板子上的两个端口,两个microusb分别为NUWriter的下载口与普通串口,所以基本上一根线就可以满足譬如GPIO的测评。
1.板载GPIO介绍
NUC980是新唐科技32位Cortex-A系列内核产品,NUC980IOT所使用的芯片为NUC980DK61YNUC980DK61Y系列采用ARM926EJ-S核心,执行速度高达300MHz,堆栈64 MB DDR-II内存于同一封装,提供128-pin LQFP封装,大幅减少PCB尺寸和降低电磁干扰(EM),丰富的周边功能包含:10组UART接口、SDIO/eMMC接口、NAND Flash接口、8组USB Host、QSPINAND界面、2組10/100 Mbps Ethernet MAC和高速USB2.0Host/Device等,其中128-pin提供了最多92路GPIO,适配了RT-thread操作系统后,可以提供包括输出输入,上拉输入下拉输入和开漏输入等不同模式,
2.工程建立及gpio测试
下载安装RT-Thread Studio和对应的开发板支持包,因为之前Studio的2.2.0有bug,所以我的stdio版本是2.1.5。在SDK管理器中添加NK-980IOT的支持包
新建工程的操作在这里就不赘述了,选择开发板示例工程即可,要使用板载gpio功能,首先要打开gpio模块,这就是stdio方便的地方,在RT-Thread Setting中选择打开gpio即可。
这里内核和组件分别是更改rtos中内核的部分,我们直接选择硬件,在硬件的界面中,我们要开启的gpio是nuc980板载的功能,所以在on-chip一行中,默认已经打开,可以直接跳过。现在来编写测试代码。
我们可以看到,板载的三颗led分别为PB8,PB13,PG15,但是PG15为复用引脚,复用功能为JTAG0_NTRST,需要关闭jtag0,这里暂时不使用,参照api手册,这里主要实现的功能只需要定义引脚模式和更改引脚状态即可。工程代码如下
/************************************************************************//
*
- [url=home.php?mod=space&uid=855824]@copyright[/url] (C) 2019 Nuvoton Technology Corp. All rights reserved.
- SPDX-License-Identifier: Apache-2.0
- Change Logs:
- Date Author Notes
- 2020-12-12 Wayne First version
*****************************************************************************/
#include <rtconfig.h>
#include <rtdevice.h>
#include <drv_gpio.h>
/ defined the LED_R pin: PB13 /
#define LED_R NU_GET_PININDEX(NU_PB, 13)
/ defined the LED_Y pin: PB8 */
#define LED_Y NU_GET_PININDEX(NU_PB, 8)
int main(int argc, char *argv)
{
/ set LED_R pin mode to output /
rt_pin_mode(LED_R, PIN_MODE_OUTPUT);
/ set LED_Y pin mode to output */
rt_pin_mode(LED_Y, PIN_MODE_OUTPUT);
while (1)
{
rt_pin_write(LED_Y, PIN_LOW);
rt_thread_mdelay(100);
rt_pin_write(LED_R, PIN_LOW);
rt_thread_mdelay(100);
rt_pin_write(LED_Y, PIN_HIGH);
rt_thread_mdelay(100);
rt_pin_write(LED_R, PIN_HIGH);
rt_thread_mdelay(100);
}
return 0;
}
3 下载调试,参照NUC980IOT用户手册,
安装好驱动,连接nuwriter的接口USB0Device,选择NUC980DK61Y.ini,在Choose中选择刚才RTthread工程中的Debug\rtthread.bin,点击Re-Connect,确认连接后点击下载,出现如下图即为下载完成
现在来看一下开发板的效果,在代码中,我们先将PB8拉低,延迟后将PB13拉低,之后在将PB8与PB13拉高,实验现象应该是黄灯与红灯交替闪烁,如视频,GPIO测试完成。
4.心得,Stdio一如既往的好用,仅需在setting中做出设置就能直接配置与工程,nuc980搭配上了RT-Thread使上手难度降低了一大截,开发过程查阅RT-ThreadApi手册就基本可以满足需求,没有成功调用PG15实现流水灯确实是一大遗憾,研究好了怎么关闭jtag再回来补充帖子。
原作者: DLMU_lcc