54 lines
1.8 KiB
C
54 lines
1.8 KiB
C
/************************************************************************//**
|
|
* \file ext_keyboard.h
|
|
* \brief Function to use the extension keyboard
|
|
* \author pascal (dot) sartoretti (at) hevs (dot) ch
|
|
***************************************************************************/
|
|
|
|
|
|
#ifndef __EXT_KEYBOARD_H
|
|
#define __EXT_KEYBOARD_H
|
|
|
|
#include <stdint.h>
|
|
#include "stm32f7xx_hal.h"
|
|
|
|
extern uint8_t ext_kbChar;
|
|
|
|
/************************************************************************//**
|
|
* \brief Inits the extension keyboard
|
|
* The extension keyboard use interrupt from keyboard (PF8)
|
|
*
|
|
* Read keyboard non blocking (interrupt):
|
|
* ---------------------------------------
|
|
* To read the keyboard, the callback function HAL_GPIO_EXTI_Callback has
|
|
* to be implemented.
|
|
* the example below send the keyboard char to the serial port
|
|
* void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
|
* {
|
|
* if(GPIO_Pin == GPIO_PIN_8)
|
|
* {
|
|
* HAL_UART_Transmit(&ext_uart, &ext_kbChar, 1,100);;
|
|
* }
|
|
* }
|
|
* Read keyboard blocking (pooling until key pressed):
|
|
* ---------------------------------------------------
|
|
* The functions below have to be used:
|
|
* pressed = Ext_Keyboard_Read();
|
|
*
|
|
* \warning The external interrupts (5,6,7,9) have to be implemented
|
|
* in the ext_keyboard.c file because they share the same processor irq
|
|
* EXTI9_5_IRQHandler.
|
|
***************************************************************************/
|
|
void Ext_Keyboard_Init(void);
|
|
|
|
/************************************************************************//**
|
|
* \brief Read the pressed key on extension keyboard
|
|
* \return The ASCII code of key pressed.
|
|
*
|
|
* \warning This function is blocking until a char is received
|
|
***************************************************************************/
|
|
uint8_t Ext_Keyboard_Read(void);
|
|
|
|
|
|
#endif /* __BOARD_LED_H */
|
|
|