[其他MCU] LPC54102+初探IO口的使用

[复制链接]
 楼主| Micachl 发表于 2015-12-31 08:17 | 显示全部楼层 |阅读模式
PC54102的板子已经申请到有一个月了,由于最近一直忙着赶论文,所以一直没有好好地玩她,实在抱歉!
万利的这款板子使用的是64引脚封装的LPC54102,可以使用串口下载,SWD下载,和jlink下载三种下载方式,使用方便。另外还将所有的引脚都印了出来,方便调试使用。

LPC54102的IO口可以做为上拉、下拉输入输出,也可设置为开漏输出,还可以设置为翻转功能,

利用万利官网给出的例程,更改参数的配置,对io口的输出进行配置,源程序为:

 楼主| Micachl 发表于 2015-12-31 08:18 | 显示全部楼层
  1. #define _MAIN_C_
  2. #include "chip.h"

  3. #include "stdint.h"

  4. #include "main.h"

  5. #include "chip.h"

  6. #include "stdint.h"

  7. #include "board_pinmuxing.h"

  8. //#include "board_led.h"

  9. #include "glcd.h"

  10. #include "board_led.h"

  11. #include "utility.h"
 楼主| Micachl 发表于 2015-12-31 08:19 | 显示全部楼层
  1. #define TICKRATE_HZ1 (1)/* 1 ticks per second */

  2. #define TICKRATE_HZ2 (2)/* 2 ticks per second */

  3. #define PRESCALE_HZ2 (0xFFFF)        /* 16-bit prescale count */

  4. volatile uint32_t SYS_ms = 0;



  5. void SysTick_Handler ( void )

  6.         {

  7.         SYS_ms++;

  8.         }
 楼主| Micachl 发表于 2015-12-31 08:20 | 显示全部楼层
  1. void delay(int count)

  2.         {        

  3.         int i=0;

  4.         int j=0;

  5.   for(i=0;i<count;i++)

  6.                 for(j=0;j<20000;j++);

  7.                

  8.         }
 楼主| Micachl 发表于 2015-12-31 08:21 | 显示全部楼层
  1. int32_t Board_LED_SetBitState ( uint32_t bitn, uint32_t sta )

  2.         {

  3.         int32_t retval = 1;

  4.         switch ( bitn ) {

  5.                 case 0:

  6.                         (sta > 0) ? Chip_GPIO_SetPinState(LPC_GPIO, 0, 30, true)

  7.                                   : Chip_GPIO_SetPinState(LPC_GPIO, 0, 30, false);

  8.                         break;
 楼主| Micachl 发表于 2015-12-31 08:21 | 显示全部楼层
  1. case 1:

  2.                         (sta > 0) ? Chip_GPIO_SetPinState(LPC_GPIO, 0, 29, true)

  3.                                   : Chip_GPIO_SetPinState(LPC_GPIO, 0, 29, false);

  4.                         break;

  5.                 case 2:

  6.                         (sta > 0) ? Chip_GPIO_SetPinState(LPC_GPIO, 0, 8, true)

  7.                                   : Chip_GPIO_SetPinState(LPC_GPIO, 0, 8, false);

  8.                         break;
 楼主| Micachl 发表于 2015-12-31 08:22 | 显示全部楼层
  1. case 3:

  2.                         (sta > 0) ? Chip_GPIO_SetPinState(LPC_GPIO, 0, 7, true)

  3.                                   : Chip_GPIO_SetPinState(LPC_GPIO, 0, 7, false);

  4.                         break;

  5.                 default:

  6.                         retval = 0;

  7.         }

  8.         return retval;

  9. }
 楼主| Micachl 发表于 2015-12-31 08:23 | 显示全部楼层
  1. int32_t main(void) {

  2.         uint32_t timerBaseClock;



  3.         // Setup SystemCoreClock and any needed board code

  4.         SystemCoreClockUpdate();

  5.         SysTick_Config(SystemCoreClock/1000);

  6.         Board_SetupMuxing();

  7.         Board_LED_Init ();
 楼主| Micachl 发表于 2015-12-31 08:24 | 显示全部楼层
  1. while (1)

  2.                 {

  3.                         delay(1000);

  4.                                 Board_LED_SetBitState ( 0, 1 );

  5.                         delay(1000);

  6.                                 Board_LED_SetBitState ( 1, 1 );

  7.                                 //Board_LED_SetBitState ( 1, 0 );

  8.                         delay(1000);

  9.                                 Board_LED_SetBitState ( 2, 1 );

  10.                         delay(1000);

  11.                                 Board_LED_SetBitState ( 3, 1 );

  12. //                                Board_LED_SetBitState ( 1, 1 );

  13. //                                Board_LED_SetBitState ( 2, 1 );

  14.                         delay(1000);
 楼主| Micachl 发表于 2015-12-31 08:25 | 显示全部楼层
  1. Board_LED_SetBitState ( 0, 0 );

  2.                         delay(1000);

  3.                                 Board_LED_SetBitState ( 1, 0 );

  4.                                 //Board_LED_SetBitState ( 1, 0 );

  5.                         delay(1000);

  6.                                 Board_LED_SetBitState ( 2, 0 );

  7.                         delay(1000);

  8.                                 Board_LED_SetBitState ( 3, 0 );

  9. //                                Board_LED_SetBitState ( 1, 1 );

  10. //                                Board_LED_SetBitState ( 2, 0 );



  11.         }

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

本版积分规则

43

主题

300

帖子

1

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

43

主题

300

帖子

1

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