在线时间56 小时
UID3584995
注册时间2019-8-12
NXP金币372
TA的每日心情 | 开心 6 天前 |
---|
签到天数: 145 天 [LV.7]常住居民III
金牌会员
- 积分
- 1261
- 最后登录
- 2024-4-19
|
本帖最后由 thinkking1985 于 2021-9-20 16:51 编辑
中秋快乐,祝愿everyone心想事成。。。小编作为初学者,就利用NXP LPC8N04 EVK跑一个最简单的点灯。。。
板图如:
驱动部分很简单如:
/*灯初始化部分,主要是IO的输入输出配置*/
void BOARD_InitLedMatrix(void)
{
s_ledMatrixInited = true;
CLOCK_EnableClock(kCLOCK_Iocon);
CLOCK_EnableClock(kCLOCK_Gpio);
IOCON->PIO[0][LED_ROW0_PIN] = IOCON_PIO_FUNC(0);
IOCON->PIO[0][LED_ROW1_PIN] = IOCON_PIO_FUNC(0);
IOCON->PIO[0][LED_ROW2_PIN] = IOCON_PIO_FUNC(0);
IOCON->PIO[0][LED_ROW3_PIN] = IOCON_PIO_FUNC(0);
IOCON->PIO[0][LED_ROW4_PIN] = IOCON_PIO_FUNC(0);
IOCON->PIO[0][LED_COL0_PIN] = IOCON_PIO_FUNC(0);
IOCON->PIO[0][LED_COL1_PIN] = IOCON_PIO_FUNC(0);
IOCON->PIO[0][LED_COL2_PIN] = IOCON_PIO_FUNC(0);
GPIO->DIR |= LED_PIN_MASK;
GPIO->GPIODATA[2047] = (LED_ROW_PIN_MASK & ~(LED_COL_PIN_MASK));
}
/*点阵LED数字形成*/
static const uint16_t s_rowPinMask[10][LED_COL_NUM] = {
/* 0 */
{
LED_ROW0_PIN_MASK | LED_ROW1_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW3_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 0 */
LED_ROW0_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 1 */
LED_ROW0_PIN_MASK | LED_ROW1_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW3_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 2 */
},
/* 1 */
{
0, /* Col 0 */
0, /* Col 1 */
LED_ROW0_PIN_MASK | LED_ROW1_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW3_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 2 */
},
/* 2 */
{
LED_ROW0_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW3_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 0 */
LED_ROW0_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 1 */
LED_ROW0_PIN_MASK | LED_ROW1_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 2 */
},
/* 3 */
{
LED_ROW0_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 0 */
LED_ROW0_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 1 */
LED_ROW0_PIN_MASK | LED_ROW1_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW3_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 2 */
},
/* 4 */
{
LED_ROW0_PIN_MASK | LED_ROW1_PIN_MASK | LED_ROW2_PIN_MASK, /* Col 0 */
LED_ROW2_PIN_MASK, /* Col 1 */
LED_ROW0_PIN_MASK | LED_ROW1_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW3_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 2 */
},
/* 5 */
{
LED_ROW0_PIN_MASK | LED_ROW1_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 0 */
LED_ROW0_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 1 */
LED_ROW0_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW3_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 2 */
},
/* 6 */
{
LED_ROW0_PIN_MASK | LED_ROW1_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW3_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 0 */
LED_ROW0_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 1 */
LED_ROW0_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW3_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 2 */
},
/* 7 */
{
LED_ROW0_PIN_MASK, /* Col 0 */
LED_ROW0_PIN_MASK, /* Col 1 */
LED_ROW0_PIN_MASK | LED_ROW1_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW3_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 2 */
},
/* 8 */
{
LED_ROW0_PIN_MASK | LED_ROW1_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW3_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 0 */
LED_ROW0_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 1 */
LED_ROW0_PIN_MASK | LED_ROW1_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW3_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 2 */
},
/* 9 */
{
LED_ROW0_PIN_MASK | LED_ROW1_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 0 */
LED_ROW0_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 1 */
LED_ROW0_PIN_MASK | LED_ROW1_PIN_MASK | LED_ROW2_PIN_MASK | LED_ROW3_PIN_MASK | LED_ROW4_PIN_MASK, /* Col 2 */
},
};
/*点灯部分*/
void BOARD_LedMatrixShowNumber(uint8_t num, uint32_t duration, bool forceInit)
{
uint32_t i;
uint32_t inc = (duration == 0) ? 0 : 1;
uint32_t gpioData;
uint8_t col;
duration = (duration == 0) ? 1 : duration;
num = (num > 9) ? 9 : num;
if ((!s_ledMatrixInited) || forceInit)
{
BOARD_InitLedMatrix();
}
gpioData = GPIO->GPIODATA[2047] & ~LED_PIN_MASK;
for (i = 0; i < duration; i += inc)
{
for (col = 0; col < LED_COL_NUM; col++)
{
GPIO->GPIODATA[2047] = gpioData | s_rowPinMask[num][col] | s_colPinMask[col];
BOARD_LedMatrixDelay();
}
}
}
视频效果:
最后再次祝大家中秋节日快乐。。。。
|
|