Open ADSP开源社区的ADSP-EDU-BF53X开发板教学视频第三集继续,ADSP-EDU-BF53X入门学习套件的教学视频第三集,主要讲解了Blackfin外设中的GPIO和中断的应用。
Andy哥闪亮登场,声音略显羞涩,大家有什么GPIO方面的问题可以再此回帖,我们尽力解答。
http://player.youku.com/player.php/sid/XMjg2OTIwNDQw/v.swf
3.11 接口功能介绍
ADSP-BF53x处理器上有16个Programmable Flag接口,简称PF接口,这些接口就是通常所有的IO接口,通过寄存器配置,可以输出电平和感知接口电平,每一个PF接口都可以作为外部中断接口。
在单片机上,通常如果设置一个IO接口输出时,直接将输出信号值付给该接口,如果作为输入时,直接通过该接口读取即可。Blackfin处理器的IO使用与单片机不同,在使用前必须对该接口进行初始化,如告知接口的方向,如配置为输出接口,则直接配置输出接口电平信号,如配置为输入接口,需打开输入使能开关,配置输出信号触发方式,是否中断触发,是否双极性触发等等。初始化完成后,才能使用PF接口。
3.12 接口寄存器说明
PF接口主要寄存器功能与使用方法
PF寄存器 |
功能 |
FIO_FLAG_D |
数据寄存器:通过该寄存器写入值设置接口电平和读取该寄存器值获取接口电平 |
FIO_FLAG_C |
清楚标志位寄存器:将该寄存器内写1,相对应的PF管脚被清楚,电平置为0。写0则无效 |
FIO_FLAG_S |
设置标志位寄存器:将该寄存器内写1,相对应的PF管脚被设置,电平置为1。写0则无效 |
FIO_MASKA_D |
中断屏蔽数据寄存器A:设置PF管脚是否使用中断功能,写1则使用中断,写0则关闭中断 |
FIO_MASKA_C |
中断屏蔽清楚寄存器A:清楚PF管脚的中断功能,写1则对应管脚关闭中断,写0则无效 |
FIO_MASKA_S |
中断屏蔽设置寄存器A:设置PF管脚的中断功能,写1则对应管脚使用中断,写0则无效 |
FIO_MASKB_D |
中断屏蔽数据寄存器B:设置PF管脚是否使用中断功能,写1则使用中断,写0则关闭中断 |
FIO_MASKB_C |
中断屏蔽清楚寄存器B:清楚PF管脚的中断功能,写1则对应管脚关闭中断,写0则无效 |
FIO_MASKB_S |
中断屏蔽设置寄存器B:设置PF管脚的中断功能,写1则对应管脚使用中断,写0则无效 |
FIO_DIR |
方向设置寄存器:写1则对应管脚为输出,写0则对应管脚为输入 |
FIO_POLAR |
极性设置寄存器:写1则0电平触发或下降沿触发,写0则高电平触发或上升沿触发 |
FIO_EDGE |
沿触发寄存器:写1则对应管脚设置为沿触发,写0则对应管脚设置为电平触发 |
FIO_BOTH |
双沿设置寄存器:写1则对应管脚设置为双沿触发,写0则对应管脚设置为单沿触发 |
FIO_INEN |
输入使能寄存器:写1则对应管脚使能输入功能,写0则对应管脚关闭输入功能 |
3.13 例子代码分析
输入接口配置:
将PF0接口配置为输入接口,并且读出接口电平状态。
*pFIO_DIR &= ~PF0; //设置PF0为输入
*pFIO_INEN |= PF0; //输入使能
i = *pFIO_FLAG_D; //读取数据
输出接口配置:
将PF0接口配置为输出接口,使用两种方式设置PF0输出高低电平。
*pFIO_DIR |= PF0; //设置PF0为输出
*pFIO_FLAG_S |= PF0; //PF0脚置高
*pFIO_FLAG_C |= PF0; //PF0脚置低
*pFIO_FLAG_D |= PF0; //PF0脚置高
*pFIO_FLAG_D &= ~PF0; //PF0脚置低
3.14 代码实现功能
工程BF53x_GPIO_IN.dpj实现了读取PF0接口状态并打印出PF接口状态数据。
工程BF53x_GPIO_OUT.dpj实现了通过PF0接口不断的输出高低变化的电平。
3.15 测试结果
工程BF53x_GPIO_IN.dpj:运行代码后将PF0接口的电平状态打印在VDSP上。
工程BF53x_GPIO_OUT.dpj: 运行代码后PF0将不断变换高低电平。
优酷链接:http://v.youku.com/v_show/id_XMjg2OTIwNDQw.html
清晰版下载地址:http://u.115.com/file/bhzklxov 如需提取码,则是:bhzklxov
开发板链接:http://item.taobao.com/item.htm?spm=1103Qmdt.3-3dfNy.h-1Akvus&id=9026190872&
文章评论(0条评论)
登录后参与讨论