原创 【OpenADSP开源社区】BF518/BF518F教学视频-GPIO

2013-3-18 14:42 842 18 18 分类: 处理器与DSP

【教学视频链接】

优酷链接:http://v.youku.com/v_show/id_XNTI3MjIzNzQ0.html

【接口功能介绍】

ADSP-BF51x 处理器上有40 个GPIO 接口,分布在PF0~PF15,PG0~PG15,PH0~PH7 端口上,通过寄存器配置,这些接口可以输出电平和感知接口电平,并可作为外部中断接口使用。

由于BF51x 处理器接口复用功能很多,在使用BF51x 端口之前,必须要对端口的功能作配置,以告知处理器使用的是什么接口。

在单片机上,通常如果设置一个IO 接口输出时,直接将输出信号值付给该接口,如果作为输入时,直接通过该接口读取即可。Blackfin 处理器的IO 使用与单片机不同,在使用前必须对该接口进行初始化,如告知接口的方向,如配置为输出接口,则直接配置输出接口电平信号,如配置为输入接口,需打开输入使能开关,配置输出信号触发方式,是否中断触发,是否双极性触发等等。初始化完成后,才能使用IO 接口。

【接口寄存器说明】

20130318142217915.jpg

【例子代码分析】

接口功能配置:
    将PF0 接口配置为IO 功能。
    *pPORTF_FER &= ~PF0;
输入接口配置:
    将PF0 接口配置为输入接口,并且读出接口电平状态。
    *pPORTFIO_DIR &= ~PF0; //设置PF0 为输入
    *pPORTFIO_INEN |= PF0; //输入使能
    i = *pPORTFIO; //读取数据
输出接口配置:
    将PF0 接口配置为输出接口,使用两种方式设置PF0 输出高低电平。
    *pPORTFIO_DIR |= PF0; //设置PF0 为输出
    *pPORTFIO_SET |= PF0; //PF0 脚置高
    *pPORTFIO_CLEAR |= PF0; //PF0 脚置低
    *pPORTFIO |= PF0; //PF0 脚置高
    *pPORTFIO &= ~PF0; //PF0 脚置低

【代码实现功能】

由于PF0 接口和网卡MII 接口复用,如使用开发板扩展接口的PF0 接口测试,需将拨码开关SW5 和SW6 全部拨向OFF,以断开网口对PF0 接口的影响。

工程BF51x_GPIO_IN.dpj 实现了读取PF0 接口状态并打印出PF 接口状态数据。
工程BF51x_GPIO_OUT.dpj 实现了通过PF0 接口不断的输出高低变化的电平。

 

文章评论0条评论)

登录后参与讨论
我要评论
0
18
关闭 站长推荐上一条 /2 下一条