HC32L130单片机入坑记

解决问题的思路+经验就可提高工作效率。

1、调试中遇到的问题及解决思路:

(1)、程序debug过程中,进入hardware_default中断中无限循环。

           解决办法:运用断点定位到程序debug出错的具体位置,程序最终执行的位置即为程序出错的位置。

(2)、HC32L130单片机使能IO口引脚较为简洁,可采用以下代码使能IO口。Gpio_Init(en_gpio_port_t   enPort, en_gpio_pin_t    enPin, stc_gpio_config_t  *pstcGpioCfg),其中enPort表示输出口,enPin代表输出具体引脚,pstcGpioCfg是一个结构体,可通过这个参数输入单片机引脚模式。

  (3)、引脚有输入输出之分,需特别注意。

HC32L130单片机的外部中断可以通过以下步骤进行配置: 1. 配置外部中断引脚,确定所需的中断引脚及其所属的GPIO口。 2. 配置中断触发方式,包括上升沿触发、下降沿触发、边沿触发等。 3. 使能中断,开启外部中断的总开关。 下面是一个简单的外部中断配置例程: ```c #include "hc32l130.h" void ExtIntInit(void) { // 配置中断引脚所属的GPIO口 M0P_GPIO->PAADS &= ~(1 << 0); // PA0不使用模拟功能 M0P_GPIO->PAOE &= ~(1 << 0); // PA0不使用开漏输出 M0P_GPIO->PAPU &= ~(1 << 0); // PA0不使用上拉 M0P_GPIO->PADIR &= ~(1 << 0); // PA0设置为输 M0P_GPIO->PASTP |= (1 << 0); // PA0不作为休眠唤醒引脚 M0P_GPIO->PAINEN |= (1 << 0); // PA0使能输 // 配置中断触发方式为上升沿触发 M0P_EXTINT->ENIR_f.EN0 = 1; // 使能中断0 M0P_EXTINT->EINT0_f.ELVL = 1; // 上升沿触发 // 使能外部中断 NVIC_ClearPendingIRQ(EXTI0_IRQn); // 清除中断标志 NVIC_SetPriority(EXTI0_IRQn, 3); // 设置中断优先级 NVIC_EnableIRQ(EXTI0_IRQn); // 使能中断 } void EXTI0_IRQHandler(void) { // 处理中断事件 // ... // 清除中断标志 M0P_EXTINT->EIFR_f.EIF0 = 1; } int main(void) { // 系统初始化 // ... // 初始化外部中断 ExtIntInit(); while (1) { // 主循环 // ... } return 0; } ``` 在上面的例程中,我们首先配置了PA0口作为中断引脚,并设置了中断触发方式为上升沿触发。然后通过使能中断,开启了外部中断的总开关。在中断处理函数中,我们可以处理中断事件,并清除中断标志以便下一次中断触发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zzh031441229

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值