大家好,我们团队的名字是Hey Siri,参赛编号是CICC1584,这次来分享在MCU200t板子上蜂鸟E203核的io口的控制方法。
在NucleiStudio的工程文件中,
\hbird_sdk\SoC\hbirdv2\Common\Source\Drivers的路径下存放了已经封装好的函数,如图:
这里就是控制io口的函数,根据后面括号里的形式写入相应变量就可以控制。我们使用的的蜂鸟版本是v2,听论坛里别的同学有用的是v1的版本,在io口这块,v1跟v2主要的区别是v2中有GPIOA跟GPIOB两个变量,而v1只有GPIO这一个变量。
因为我们一直使用的是v2版本,对v1版本不了解,这里就只介绍v2版本的io口控制,欢迎有用过v1的同学进行补充。
我们的板子型号是MCU200t,GPIOA已经跟板子上的外设资源连接好,而GPIOB则是全部约束到板子的PMOD上浮空。GPIOA的对应关系则可以在
hbird_sdk\SoC\hbirdv2\Board\mcu200t\Include\board_mcu200t路径中找到,如图所示:
可以看出,板子上有8个LED,5个按键和8个开关。而GPIOB跟PMOD的关系可以在MCU200t的板子原理图上找到,原理图在下列链接中:
https://www.nucleisys.com/upload/files/fpga/doc/Nuclei_MCU200T.pdf
根据原理图即可控制对应io。
而io口的配置函数gpio_enable_output(GPIOA, SOC_LED_GPIO_MASK);前面的GPIOA声明是gpio类变量,控制板上已经连接的资源,后面的MASK则是指明是使能哪一个io口,
头文件board_mcu200t已经声明好了,直接写入就可以。可以仿照这个写法控制GPIOB,比如gpio_enable_output(GPIOB, 1<<0); 就是是GPIOB0,即PMOD J76 1的io口变为输出模式。
知道MASK的赋值写法之后,使用别的gpio的函数时也不会有问题。按照写法代入即可。
GPIOA的测试结果直接看板上就可以知道,而我们手头上没有类似LED这种可以接上io口看效果的期间,用逻辑分析仪来测试GPIOB的使用。
测试代码为:
gpio_write(GPIOB,1<<2,1);
delay_1ms(1);
gpio_write(GPIOB,1<<2,0);
把逻辑分析仪连上后,可在pc上看到:
输出正常,测试成功。
这篇贴子分享了在MCU200t板子上控制v2蜂鸟核的io口的方法,能力有限,难免出现疏漏,,有些理解不到位或者错误的地方希望大家能够指正,共同学习共同进步,祝各参赛队比赛顺利!