main.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "ch.h"
  2. #include "hal.h"
  3. static WORKING_AREA(blinkyThreadArea, 128);
  4. static msg_t blinky(void *arg)
  5. {
  6. (void)arg;
  7. chRegSetThreadName("blinky");
  8. for(;;)
  9. {
  10. palSetPad(GPIOH, GPIOH_LED1);
  11. chThdSleepMilliseconds(500);
  12. palClearPad(GPIOH, GPIOH_LED1);
  13. chThdSleepMilliseconds(500);
  14. }
  15. }
  16. static msg_t hello(void *arg)
  17. {
  18. (void)arg;
  19. chRegSetThreadName("hello");
  20. while (TRUE)
  21. {
  22. palSetPad(GPIOH, GPIOH_LED1);
  23. chThdSleepMilliseconds(500);
  24. palClearPad(GPIOH, GPIOH_LED1);
  25. chThdSleepMilliseconds(500);
  26. }
  27. }
  28. int main(void)
  29. {
  30. halInit();
  31. chSysInit();
  32. sdStart(&SD3, NULL);
  33. palSetPadMode(GPIOC, GPIOC_USART3_TX, PAL_MODE_ALTERNATE(7));
  34. palSetPadMode(GPIOC, GPIOC_USART3_RX, PAL_MODE_ALTERNATE(7));
  35. chThdCreateStatic(blinkyThreadArea, sizeof(blinkyThreadArea), NORMALPRIO, blinky, NULL);
  36. for(;;)
  37. {
  38. chSequentialStreamWrite((BaseSequentialStream*)&SD3, "Hello, World!\r\n", sizeof("Hello, World!\r\n"));
  39. chThdSleepMilliseconds(1000);
  40. }
  41. }