[demo程序] NV32F101FGPIO端口数据输出切换实验程序示例

[复制链接]
 楼主| Bruing 发表于 2018-8-28 17:25 | 显示全部楼层 |阅读模式
  1. /**********************************************************************
  2. *
  3. * 实验名称:FGPIO端口数据输出切换实验
  4. * 实验平台:NV32开发板
  5. * 板载芯片:NV32F101FL64E
  6. * 实验效果:PB2引脚为输出引脚,切换PB2数据输出,可测量PB2输出波形的周期
  7. *           最大可达到内核时钟频率的1/2
  8. *
  9. ************************************************************************/
  10. /******************************************************************************
  11. * 注:要使输出波形接近内核时钟的1/2,需要设置C编译器的优化等级
  12. *******************************************************************************/

  13. #include "common.h"
  14. #include "rtc.h"
  15. #include "gpio.h"
  16. #include "sim.h"
  17. #include "sysinit.h"
  18. #include "start.h"

  19. int main (void);
  20. void gpio_t(void);

  21. /********************************************************************/
  22. int main (void)
  23. {  

  24.     /*系统初始化*/
  25.     sysinit();
  26.   
  27.     cpu_identify();

  28.     printf("\nRunning the GPIO_OneCycle_demo project.\r\n");
  29.     printf("\nBy default Core Clock is 48MHz.\r\n");
  30.     printf("\nBy one cycle GPIO access, PTB2 output frequency is expected to be 24MHz.\r\n");

  31.     /* 使能总线时钟在PH2上 */
  32.     SIM_EnableClockOutput();

  33.     /* 配置PB2为输出引脚*/
  34.     GPIO_Init(GPIOA, GPIO_PTB2_MASK, GPIO_PinOutput);

  35.     /* PB2输出为 0 */
  36.     GPIO_PinClear(GPIO_PTB2);
  37.     gpio_t();

  38. }

  39. void gpio_t(void)
  40. {
  41.       for(;;)
  42.     {
  43.         /* 通过FastGPIO切换PB2输出, 输出波形的频率= 内核时钟/2 */
  44.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  45.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);         
  46.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  47.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  48.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  49.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  50.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);         
  51.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  52.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  53.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  54.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  55.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);         
  56.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  57.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  58.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  59.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  60.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);         
  61.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  62.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  63.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  64.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  65.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);         
  66.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  67.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  68.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  69.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  70.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);         
  71.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  72.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  73.         FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
  74.     }
  75. }
  76. /*****************************************************************************/

您需要登录后才可以回帖 登录 | 注册

本版积分规则

71

主题

308

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部