• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Прерывания от GPIO в CH582M

sminder

New member
У меня есть МК CH582M и мне нужно использовать прерывания. К сожалению, в моем коде прерывания не заработали. Привожу исходный код:

Код:
#define INT_PIN     GPIO_Pin_18

int main()
{
    SetSysClock(CLK_SOURCE_PLL_80MHz);
    // LED init
    GPIOB_ModeCfg(GPIO_Pin_4, GPIO_ModeOut_PP_20mA);
    GPIOB_SetBits(GPIO_Pin_4);
    // Input GPIO init
    GPIOB_ModeCfg(INT_PIN, GPIO_ModeIN_PU);
    GPIOB_ITModeCfg(INT_PIN, GPIO_ITMode_FallEdge);
    // Interrupt init
    PFIC_ClearPendingIRQ(GPIO_B_IRQn);
    PFIC_EnableIRQ(GPIO_B_IRQn);
    while(1);
}

// Interrupt handler
__INTERRUPT __HIGH_CODE void GPIOB_IRQHandler()
{
    GPIOB_ClearITFlagBit(INT_PIN);
}

Кто-нибудь может подсказать, что не так? В функцию прерывания не заходит, на пине уровень меняется (проверял пулом), основной код работает. Примеров работы с прерываниями от GPIO для данного МК не нашел.
 

pvvx

Активный участник сообщества
> Примеров работы с прерываниями от GPIO для данного МК не нашел.

void HAL_KeyInit(void)
ch583\Application\wristband\firmware\Demo_Firmware\subsys\HAL\KEY.c
 

sminder

New member
> Примеров работы с прерываниями от GPIO для данного МК не нашел.

void HAL_KeyInit(void)
ch583\Application\wristband\firmware\Demo_Firmware\subsys\HAL\KEY.c
У меня в проекте нет такой функции HAL_KeyInit().
Подскажите, откуда этот путь ch583\Application\wristband\firmware\Demo_Firmware\subsys\HAL\KEY.c ?
 

sminder

New member
Я не пользовался такой библиотекой. Я пользуюсь официальной средой разработки MounRiverStudio, там в комплекте свой CSL есть.
 

pvvx

Активный участник сообщества
А это официальные примеры и SDK от WCH, производителя чипов.
А MounRiverStudio - это оболочка от сторонней организации.
 
Сверху Снизу