コード例 #1
0
extern "C" void user_main() {
    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_SET);

    osKernelInitialize();
    osKernelStart();

    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_RESET);

    key_event_init();
    keymat_init();
    keymat_callback = key_event_handler;
    keymat_start();

    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_SET);

    while (1) {
        osEvent ose = osMailGet(key_events, osWaitForever);
        if (ose.status == osEventMail) {
            KeyEvent* e = (KeyEvent*)ose.value.p;

            // NOTE: MIDI handling is hardcoded for now
            buf[0] = (e->state ? 0x90 : 0x80); // use ch0
            buf[1] = e->keycode;
            buf[2] = 100; // use hard-coded velocity

            osMailFree(key_events, e);

            send_n(3); // blocking call
        }
    }
}
コード例 #2
0
ファイル: main.c プロジェクト: FanNiu/wildfire_stm32_iso_mini
/**
  * @brief  主函数
  * @param  无  
  * @retval 无
  */
int main(void)
{	
	Site_t site= {0,0};
	
	/* LED 端口初始化 */
	LED_GPIO_Config();	 
	
	/* LCD初始化 */
	LCD_init();

	SysTick_Init();
	
	site.x=20;site.y=20;
	LCD_str(site,"LCD test OK",BLUE,RED);

	key_event_init();

	/* 方法2,使用固件库控制IO */
	while (1)
	{	
		deal_key_event();
	}

}