STM32F0 HAL库软件模拟串口发送数据

发布时间 2023-07-21 08:51:19作者: SymPny

试验STM32F0官方提供的例程的时候,希望看到程序中某些变量的值,但是程序中往往没有串口发送部分,自己加又非常麻烦。

而点亮LED的程序基本上每个例程都有。所以用点亮LED引脚模拟串口发送数据就很方便,不用再去初始化串口IO,初始化串口等等。

  1. /**
  2. * @brief 软件模拟串口发送数据
  3. * @param 48MHz时钟,9600波特率,8数据位,无校验
  4. * @retval None
  5. */
  6. void SimUartSend(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin,uint8_t value)
  7. {
  8. uint32_t i;
  9. uint8_t k;
  10. //发送起始位
  11. HAL_GPIO_WritePin(GPIOx, GPIO_Pin,GPIO_PIN_SET);
  12. HAL_GPIO_WritePin(GPIOx, GPIO_Pin,GPIO_PIN_RESET);
  13. for(i = 0;i<930;i++)
  14. {
  15. ;
  16. }
  17. //发送数据位
  18. for(k = 0;k<8;k++)
  19. {
  20. if((value&(1<<k)) > 0)
  21. {
  22. HAL_GPIO_WritePin(GPIOx, GPIO_Pin,GPIO_PIN_SET);
  23. for(i = 0;i<960;i++)
  24. {
  25. ;
  26. }
  27. }
  28. else
  29. {
  30. HAL_GPIO_WritePin(GPIOx, GPIO_Pin,GPIO_PIN_RESET);
  31. for(i = 0;i<950;i++)
  32. {
  33. ;
  34. }
  35. }
  36. }
  37. //发送停止位
  38. {
  39. HAL_GPIO_WritePin(GPIOx, GPIO_Pin,GPIO_PIN_SET);
  40. for(i = 0;i<970;i++)
  41. {
  42. ;
  43. }
  44. }
  45. }