图片:
测试环境:使用ssh远程登录下执行官方的例程代码
复制代码- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <unistd.h>
- #include <fcntl.h>
- #include <unistd.h>
- #include <sys/mman.h>
- #define GPIOC_BASE_ADDRESS (0xC001C000)
- #define MAP_SIZE 40
- static int dev_fd;
- int main(int argc, char **argv)
- {long unsigned int i=0;
- dev_fd = open("/dev/mem", O_RDWR | O_NDELAY);
- if (dev_fd < 0)
- {
- printf("open(/dev/mem) failed.");
- return 0;
- }
- unsigned int base = (unsigned int)mmap(NULL, MAP_SIZE, PROT_READ |
- PROT_WRITE, MAP_SHARED, dev_fd, GPIOC_BASE_ADDRESS );
- #define GPIOCOUT *(unsigned int *)base
- #define GPIOCOUTENB *(unsigned int *)(base+0x04)
- #define GPIOCALTFN0 *(unsigned int *)(base+0x20)
- GPIOCALTFN0 &= ~(3<<22);
- GPIOCALTFN0 |= (1<<22);
- GPIOCOUTENB |= (1<<11);
- while(1)
- {
- GPIOCOUT |= (1<<11);
- //sleep(1);
- GPIOCOUT &= ~(1<<11);}
- if(dev_fd)
- close(dev_fd);
- munmap((unsigned int *)base,MAP_SIZE);
- return 0;
- }
|
对应GPIOC11的io速度翻转速度3M多一点,效果见图片,请自动忽略示波器照片的时间
[ 此帖被nanan2588在2016-12-20 17:56重新编辑 ]