ADSP GPIO输入功能及编译错误经验
时间:11-10 14:55 阅读:1602次
*温馨提示:点击图片可以放大观看高清大图
简介:今天跟着前面的思路学习ADSP GPIO的输入功能的,打开开发板附带光盘中的bf53x_gpio_in项目,连接了之前建立的Session,然后看一下程序,如下语句。
void init_PF0_IN(void)
{
*pFIO_DIR &= ~PF0; //设置PF0口的方向属性为输入
*pFIO_INEN |= PF0; //开启PF0口的输入使能
}
void main(void)
{
int i;
Set_PLL(16,3); //设置系统运行速度
init_PF0_IN(); //初始化端口
while(1)
{
i = *pFIO_FLAG_D; //在while循环中不断地读取PF端口的值
printf("PF data is %d\n",i); //把i值通过仿真器读回来显示在编译器上
}}
跟输出功能的学习类似,也就是查找相应寄存器的内容和功能,记得加上*pFIO_INEN |= PF0语句,如果没有开启输入使能,器件是读不到端口电平的,程序看完,按下编译图标,
不知道为什么,却出现了如下图中的错误提示:
错误提示中写着:The file “E:\ADSP\ADSP-EDU-BF53x资料光盘\ADSP-EDU-BF53x_CODE\InterfaceCode\bf53x_gpio_in\BF53x_GPIO_IN.mak”could not be created. 意思是说,我打开的这个项目的Makefile文件不能被建立,真的很奇怪,几天前我刚刚打开GPIO_OUT的项目,编译跟下载都没问题啊,于是我又重新打开了之前打开的GPIO_OUT的项目,但是还是出现了同样的问题,编译不通过。怎么那么奇怪,明明是同样的程序,怎么过几天就不行了呢。我把错误的说明拷到百度上搜索了一下,不过ADSP的中文资料有点少,搜不到。于是我细想了之前学习的过程,突然让我想起这两个项目的存放路径不同,一个是之前让我拷到电脑硬盘中,一个在光盘中直接打开,难道跟这个有关,好像之前也曾遇到过类似的情景,对,难道VisualDSP++跟Quartus II软件一样,项目不能存放在中文目录下,于是我赶紧打开了存放在电脑中的英文目录下的项目进行编译,呵呵,“Load complete.”原来VisualDSP++也是不支持中文目录的,浪费了我不少时间,不过算,就当是积累经验,谁叫我刚入门呢,呵呵。解决完编译错误的问题,我又对上面的程序进行仿真,点击全速运行,得到了下面的结果:
从程序中我们可以看到,从仿真器中读回来的数值应该就是PF整个端口16位的数据,于是我把程序中的PF0都改成了PF2,然后再编译仿真,呵呵,结果果真如此,从仿真器中读回来的数据如下图:
那么应该没错,PF=0b0000_0000_0000_0100,也就是4 。对于GPIO口学习到此为止,呵,写得不好,仅供参考。