打印
[demo程序]

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

[复制链接]
756|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Bruing|  楼主 | 2018-8-28 17:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/**********************************************************************
*
* 实验名称:FGPIO端口数据输出切换实验
* 实验平台:NV32开发板
* 板载芯片:NV32F101FL64E
* 实验效果:PB2引脚为输出引脚,切换PB2数据输出,可测量PB2输出波形的周期
*           最大可达到内核时钟频率的1/2
*
************************************************************************/
/******************************************************************************
* 注:要使输出波形接近内核时钟的1/2,需要设置C编译器的优化等级
*******************************************************************************/

#include "common.h"
#include "rtc.h"
#include "gpio.h"
#include "sim.h"
#include "sysinit.h"
#include "start.h"

int main (void);
void gpio_t(void);

/********************************************************************/
int main (void)
{  

    /*系统初始化*/
    sysinit();
  
    cpu_identify();

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

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

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

    /* PB2输出为 0 */
    GPIO_PinClear(GPIO_PTB2);
    gpio_t();

}

void gpio_t(void)
{
      for(;;)
    {
        /* 通过FastGPIO切换PB2输出, 输出波形的频率= 内核时钟/2 */
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);         
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);         
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);         
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);         
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);         
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);         
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
        FGPIO_Toggle(FGPIOA, GPIO_PTB2_MASK);
    }
}
/*****************************************************************************/

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

71

主题

308

帖子

1

粉丝