您当前的位置:五五电子网电子知识单片机-工控设备源码-程序Cortex-M3处理器的GPIO实验自学 正文
Cortex-M3处理器的GPIO实验自学

Cortex-M3处理器的GPIO实验自学

点击数:7121 次   录入时间:03-04 11:45:41   整理:http://www.55dianzi.com   源码-程序

      Led2Off();

      Led3Off();

      Led4Off();

      Led5Off();

      Led6Off();

      Led7Off();

      Led8Off();

      }

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

      * 函数名称:int main(void)

      * 函数功能: 主函数

      * 入口参数: 无

      * 出口参数: 无

      * 备    注:无

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

      int main(void)

      {

      SystEMInit();     /* 系统初始化,函数在system_LPC17xx.c文件夹中定义*/

      SysTick_Config(SystemFrequency/1000 - 1);   /* 配置时钟中断,每1ms中断一次*/

      /* 在core_cm3.h中定义*/

      PortInit();       /* 端口初始化*/

      while(1)

      {

      Led1On();     //LED1开

      Led4On();    //LED4 开

      DelayMs(200);

      Led1Off();    //LED1关

      Led4Off();    //LED4关

      DelayMs(200);

      }

      }

      因为程序是最基础的实验,所以不是太难,程序中延时函数用的是系统节拍定时器,每1m中断一次,系统节拍定时器的中断配置函数是SysTick_Config(uint32_t ticks)它在core_cm3.h中有定义,有兴趣的话可以看看。GPIO是一个结构体指针,原型在LPC17XX.H这个头文件中,其定义的原型如下所示:

      typedef struct

      {

      __IO uint32_t FIODIR;

      uint32_t RESERVED0[3];

      __IO uint32_t FIOMASK;

      __IO uint32_t FIOPIN;

      __IO uint32_t FIOSET;

      __O  uint32_t FIOCLR;

      } GPIO_TypeDef;

      还有几个宏定义,如下所示:

      1)、#define GPIO1                 ((     GPIO_TypeDef *)     GPIO1_BASE)

      上面这个宏是把GPIO1指向芯片GPIO1的基址上,

      2)、#define GPIO1_BASE            (GPIO_BASE + 0x00020)

      3)、#define GPIO_BASE             (0x2009C000UL)

      这三个宏就把GPIO的基址定义了出来,关于LPV1768内部地址的分配情况,可以参看它的数据手册,也可参考一下《ARM Cortex-M3 权威指南》,这本书在网上有电子书,好像宋岩宁牛人早已把它翻译成中文了,懒猫现在也正在参考这本书,另外一定要多去NXP网站看一下它的handbook,whitepaper等资料,还可多到论坛转转,有些坛子里深藏了好多老鸟,好多大虾,好多大牛,有你学的,有你问的,只要肯用心,一根网线,能解决很多问题。



上一页  [1] [2] 


本文关键字:处理器  源码-程序单片机-工控设备 - 源码-程序