You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.0 KiB
42 lines
1.0 KiB
7 years ago
|
//
|
||
|
// Utilities for parsing pins from settings to LL and resources
|
||
|
//
|
||
|
// Created by MightyPork on 2017/12/08.
|
||
|
//
|
||
|
|
||
|
#ifndef GEX_PIN_UTILS_H
|
||
|
#define GEX_PIN_UTILS_H
|
||
|
|
||
|
#include "platform.h"
|
||
|
#include "resources.h"
|
||
|
|
||
|
/**
|
||
|
* Convert pin number to LL driver bitfield for working with the pin.
|
||
|
*
|
||
|
* @param pin_number - number 0..15
|
||
|
* @param suc - set to false on failure, left unchanged on success.
|
||
|
* @return LL_GPIO_PIN_x
|
||
|
*/
|
||
|
uint32_t plat_pin2ll(uint8_t pin_number, bool *suc);
|
||
|
|
||
|
/**
|
||
|
* Convert pin name and number to a resource enum
|
||
|
*
|
||
|
* @param port_name - char 'A'..'Z'
|
||
|
* @param pin_number - number 0..15
|
||
|
* @param suc - set to false on failure, left unchanged on success
|
||
|
* @return the resource, or R_NONE
|
||
|
*/
|
||
|
Resource plat_pin2resource(char port_name, uint8_t pin_number, bool *suc);
|
||
|
|
||
|
/**
|
||
|
* Convert port name to peripheral instance
|
||
|
*
|
||
|
* @param port_name - char 'A'..'Z'
|
||
|
* @param suc - set to false on failure, left unchanged on success.
|
||
|
* @return instance
|
||
|
*/
|
||
|
GPIO_TypeDef *plat_port2periph(char port_name, bool *suc);
|
||
|
|
||
|
#endif //GEX_PIN_UTILS_H
|