【MCXA156开发板测评】+按键控制LED
<p>MCXA156开发板为了便于用户体验和测试其功能,配备了相应的接口和外设,见图1所示。</p><p> </p>
<p>图1 接口及外设配置</p>
<p > </p>
<p >为此,就从GPIO口的使用来开始它的探索与使用之旅。</p>
<p >GPIO口有两大基本功能,即输入与输出功能。板载的RGB_LED和按键恰为GPIO口的测试提供了便利,其电路见图2所示。</p>
<p > </p>
<p > </p>
<p > </p>
<p>图2 RGB及按键电路</p>
<p > </p>
<p >用按键来控制LED不外乎2种方式,即查询方式和中断方式。</p>
<p > </p>
<ol>
<li >查询方式</li>
</ol>
<p >以查询方式进行控制的思路为:</p>
<p >将LED和按键所使用的引脚分别配置为输出和输入工作模式,然后通过按键的状态来控制LED进行状态的翻转变化。</p>
<p >以查询方式进行控制的主程序为:</p>
<pre>
<code class="language-cpp">int main(void)
{
gpio_pin_config_t sw_config = {
kGPIO_DigitalInput,
0,
};
gpio_pin_config_t led_config = {
kGPIO_DigitalOutput,
0,
};
BOARD_InitPins();
BOARD_InitBootClocks();
BOARD_InitDebugConsole();
GPIO_PinInit(BOARD_SW_GPIO, BOARD_SW_GPIO_PIN, &sw_config);
GPIO_PinInit(BOARD_LED_GPIO, BOARD_LED_GPIO_PIN, &led_config);
while (1)
{
if ((GPIO_PinRead(BOARD_SW_GPIO, BOARD_SW_GPIO_PIN))==0)
{
GPIO_PortToggle(BOARD_LED_GPIO, 1U << BOARD_LED_GPIO_PIN);
while (((GPIO_PinRead(BOARD_SW_GPIO, BOARD_SW_GPIO_PIN))==0));
}
}
}
</code></pre>
<p>2.中断方式</p>
<p > </p>
<p >以中断方式进行控制的思路为:</p>
<p >将LED和按键所使用的引脚分别配置为输出和输入工作模式,并启动中断处理。当按下按键时,触发中断处理以使标志变量等于真,从在主程序中使LED进行状态翻转。</p>
<p > </p>
<p >以中断方式进行控制的主程序为:</p>
<pre>
<code class="language-cpp">int main(void)
{
gpio_pin_config_t sw_config = {
kGPIO_DigitalInput,
0,
};
gpio_pin_config_t led_config = {
kGPIO_DigitalOutput,
0,
};
BOARD_InitPins();
BOARD_InitBootClocks();
BOARD_InitDebugConsole();
GPIO_SetPinInterruptConfig(BOARD_SW_GPIO,BOARD_SW_GPIO_PIN, kGPIO_InterruptFallingEdge);
EnableIRQ(BOARD_SW_IRQ);
GPIO_PinInit(BOARD_SW_GPIO, BOARD_SW_GPIO_PIN, &sw_config);
GPIO_PinInit(BOARD_LED_GPIO, BOARD_LED_GPIO_PIN, &led_config);
while (1)
{
if (g_ButtonPress)
{
GPIO_PortToggle(BOARD_LED_GPIO, 1U << BOARD_LED_GPIO_PIN);
g_ButtonPress = false;
}
}
}
</code></pre>
<p>中断处理的函数为:</p>
<pre>
<code class="language-cpp">void BOARD_SW_IRQ_HANDLER(void)
{
GPIO_GpioClearInterruptFlags(BOARD_SW_GPIO, 1U << BOARD_SW_GPIO_PIN);
g_ButtonPress = true;
SDK_ISR_EXIT_BARRIER;
}
</code></pre>
<p>这样我们就以2种方式实现了按键控制LED的功能,也为后续的GPIO口使用提供了可靠的支持。</p>
<p> </p>
<p > </p>
<p>查询和中断都是比较常用的按键控制方法</p>
Jacktang 发表于 2024-12-25 07:27
查询和中断都是比较常用的按键控制方法
<p>没错,因此要打好基础。</p>
<p>板载接口还是挺丰富的,扩展模块要不是买的太贵其实可以整个套件的测评</p>
<p>谢谢分享,期待看看特色外设<img height="52" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/pleased.gif" width="48" /></p>
akaz 发表于 2025-1-19 19:33
官方的板子就可以直接用案例,第三方的都得移植,毕竟硬件都会有所不同。
<p>的确是这种情况</p>
页:
[1]