[技术问答]

通过BOS位实现GPIO寄存器位操作的代码示例

[复制链接]
681|1
手机看帖
扫描二维码
随时随地手机跟帖
Bruing|  楼主 | 2018-8-28 17:07 | 显示全部楼层 |阅读模式
/**********************************************************************
*
* 实验名称:GPIO位带操作
* 实验平台:NV32开发板
* 板载芯片:NV32F101FL64E
* 实验效果:通BOS位操作,实现GPIO寄存器的位操作。 不仅降低了总线占有率和CPU
*           执行时间,还节省代码空间
*
************************************************************************/
#include "common.h"
#include "systick.h"
#include "bos.h"
#include "gpio.h"
#include "delay.h"
#include "sysinit.h"
#include "start.h"


#define LED0_OFF    PTE7_OUT_HIGH //PE7输出为高电平
#define LED0_ON     PTE7_OUT_LOW  //PE7输出为低电平
#define LED1_OFF    PTH1_OUT_HIGH
#define LED1_ON     PTH1_OUT_LOW
#define LED2_OFF    PTH2_OUT_HIGH  
#define LED2_ON     PTH2_OUT_LOW

int main (void);

int main (void)
{
        uint32_t velua;
       
   sysinit();
         DelayInit(); //延时初始化

   BOS_BIT_SET(&GPIOB->PDDR,7);  //设置PE7引脚为输出
         
         BOS_BIT_SET(&GPIOB->PDDR,25); //设置PH1引脚为输出
         
         BOS_BIT_SET(&GPIOB->PDDR,26); //设置PH2引脚为输出
       
         BOS_BIT_CLEAR(&GPIOA->PDDR,1); //设置PA1引脚为输入
         BOS_BIT_CLEAR(&GPIOA->PIDR,1);
         BOS_BIT_SET(&PORT->PUEL ,1);  //端口PA1使能上拉
         velua=PTA1_IN;                //读取PA1端口输入
         printf("PA1=%X.\r\n",velua);
       
    while(1)
    {
                        DelayMs(1000);
                        LED0_OFF;
                        DelayMs(1000);
                        LED1_OFF;
                        DelayMs(1000);
                  LED2_OFF;
                        DelayMs(1000);
                        LED2_ON;
                        DelayMs(1000);
                        LED1_ON;
                        DelayMs(1000);
                        LED0_ON;
                        DelayMs(1000);
                        LED0_ON;
                        LED1_ON;
                        LED2_ON;
                        DelayMs(1000);
                        LED0_ON;
                        LED1_ON;
                        LED2_ON;
    }
}

/********************************************************************/

相关帖子

Bruing|  楼主 | 2018-8-28 17:18 | 显示全部楼层
377195b85137070050.png

使用特权

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

本版积分规则

71

主题

308

帖子

1

粉丝