flipper_hal.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. Flipper devices inc.
  3. GPIO and HAL implementations
  4. */
  5. #include "main.h"
  6. #include "flipper_hal.h"
  7. #include <stdio.h>
  8. void app_gpio_init(GpioPin gpio, GpioMode mode) {
  9. if(gpio.pin != 0) {
  10. switch(mode) {
  11. case GpioModeInput:
  12. printf("[GPIO] %s%d input\n", gpio.port, gpio.pin);
  13. break;
  14. case GpioModeOutput:
  15. printf("[GPIO] %s%d push pull\n", gpio.port, gpio.pin);
  16. break;
  17. case GpioModeOpenDrain:
  18. printf("[GPIO] %s%d open drain\n", gpio.port, gpio.pin);
  19. break;
  20. }
  21. gpio.mode = mode;
  22. } else {
  23. printf("[GPIO] no pin\n");
  24. }
  25. }
  26. void delay_us(uint32_t time) {
  27. // How to deal with it
  28. printf("[DELAY] %d us\n", time);
  29. }
  30. void pwm_set(float value, float freq, TIM_HandleTypeDef* tim, uint32_t channel) {
  31. printf("[TIM] set pwm %d:%d %f Hz, %f%%\n", *tim, channel, freq, value * 100.);
  32. }
  33. void HAL_GPIO_WritePin(const char* port, uint32_t pin, HAL_GPIO_PIN_STATE state) {
  34. printf("[GPIO] set pin %s:%d = %d\n", port, pin, state);
  35. }
  36. HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef* hspi, uint8_t *pData, uint16_t size, uint32_t Timeout) {
  37. printf("[SPI] write %d to %s: ", size, *hspi);
  38. for(size_t i = 0; i < size; i++) {
  39. printf("%02X ", pData[i]);
  40. }
  41. printf("\n");
  42. return 0;
  43. }
  44. SPI_HandleTypeDef hspi1 = "spi1";