本帖最后由 motodefy 于 2013-10-27 13:03 编辑
昨天装完了驱动···今天就开始跑例程了···
因为第一次接触飞思卡尔,先从简单的GPIO开始吧
载完程序,上示波器,发现确实是个10MHz的I/O翻转
速度为频率的一半,相当快,看看例程。
例程是这样写的
//config GPIO PTB2 as a general-purpose output
FGPIOA_PDDR |= (4<<8);
设置PTB2这个引脚为输出模式
//set PTB2 output 0
FGPIOA_PCOR = (4<<8);
设置为低电平
然后是个循环,翻转电平
FGPIOA_PTOR = 0x400;
FGPIOA_PTOR = 0x400;
和
GPIOA_PTOR = 0x400;
GPIOA_PTOR = 0x400;
这里有个问题,他写的程序里一直重复写了翻转好几次,是这样的
但是我去掉大部分只留下1句翻转后,频率就降下来了,到不了10M
多次尝试,发现在多次翻转以后会有一个大的时间的波形下降的过程,这个导致了示波器测出的频率不准确。
猜测应该是初始化定义引脚低电平时占用的时间。实际上FGPIO的翻转速度还是很快的。
用FGPIOA_PTOR = 0x400;翻转的话确实是GPIOA_PTOR = 0x400;速度的3倍左右。
然后看下各个寄存器的定义吧
Port Set Output Register (GPIOB_PSOR) 端口置高
Port Clear Output Register (GPIOB_PCOR) 端口置低
Port Toggle Output Register (GPIOB_PTOR) 端口数据输出寄存器
Port Data Input Register (GPIOB_PDIR) 端口切换,翻转
Port Data Direction Register (GPIOB_PDDR) 端口数据方向寄存器
Port Input Disable Register (GPIOB_PIDR)端口数据输入寄存器
FGPIO和GPIO是一样的
关于I/O口还是比较简单的,和之前用的M3大同小异,还是比较容易上手的,等会写个小程序试试
有问题大家多多交流啊:lol
数据手册
KE02_Reference_Manual_Rev.2.1.rar
(3.37 MB)
晚上花了点时间移植了下oled的显示,用的3线的spi。I/O口模拟的,效果还不错
|