usart.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. /**
  2. ******************************** STM32F10x *********************************
  3. * @文件名 : usart.h
  4. * @作者 : sun
  5. * @库版本 : V3.5.0
  6. * @文件版本 : V1.0.0
  7. * @日期 : 2016年05月09日
  8. * @摘要 : USART头文件
  9. ******************************************************************************/
  10. /* 定义防止递归包含 ----------------------------------------------------------*/
  11. #ifndef _USART_H
  12. #define _USART_H
  13. /* 包含的头文件 --------------------------------------------------------------*/
  14. #include "stm32f10x.h"
  15. #include "stdio.h"
  16. #define DEBUG_EN 1
  17. #ifdef DEBUG_EN
  18. #include <stdio.h>
  19. #define DEBUG(fmt, x...) \
  20. do \
  21. { \
  22. printf(fmt,##x); \
  23. }while(0)
  24. #define DEBUG1(fmt, x...) \
  25. do \
  26. { \
  27. printf("%s(Line %d): "fmt,__FUNCTION__,__LINE__, ##x); \
  28. }while(0)
  29. #define DEBUG2(fmt, x...) \
  30. do \
  31. { \
  32. USART_printfHex(fmt,##x); \
  33. }while(0)
  34. #define DEBUG_F(fmt, x...) \
  35. do \
  36. { \
  37. printf("%s %s(Line %d): "fmt,__FILE__,__FUNCTION__,__LINE__, ##x); \
  38. }while(0)
  39. #else
  40. #define DEBUG(fmt, x...)
  41. #define DEBUG1(fmt, x...)
  42. #define DEBUG2(fmt, x...)
  43. #define DEBUG_F(fmt, x...)
  44. #endif
  45. #define MAXLOADLEN 128
  46. #define SYSTEMTICK_PERIOD_MS 1 //滴答时基,单位ms,缺省值10ms
  47. /********************uart1****************************/
  48. #define USART1_BAUDRATE 115200 //波特率,缺省值115200
  49. #define USART1_BUF_SIZE 128 //接收一、二级缓冲区大小,缺省值2000
  50. #define USART1_RECEIVE_OVERTIME 100 //字节超时时间, 单位为ms,缺省值100ms
  51. extern uint8_t USART1_ready_buf[];
  52. extern volatile uint8_t USART1_ready_buf_ok;
  53. extern volatile uint16_t USART1_ready_buf_len;
  54. #define USART2_BAUDRATE 115200 //波特率,缺省值115200
  55. #define USART2_BUF_SIZE 128 //接收一、二级缓冲区大小,缺省值2000
  56. #define USART2_RECEIVE_OVERTIME 100 //字节超时时间, 单位为ms,缺省值100ms
  57. extern uint8_t USART2_ready_buf[];
  58. extern volatile uint8_t USART2_ready_buf_ok;
  59. extern volatile uint16_t USART2_ready_buf_len;
  60. #define UART4_BAUDRATE 115200 //波特率,缺省值115200
  61. #define UART4_BUF_SIZE 128 //接收一、二级缓冲区大小,缺省值2000
  62. #define UART4_RECEIVE_OVERTIME 100 //字节超时时间, 单位为ms,缺省值100ms
  63. extern uint8_t UART4_ready_buf[];
  64. extern volatile uint8_t UART4_ready_buf_ok;
  65. extern volatile uint8_t UART4_ready_buf_len;
  66. #define UART5_BAUDRATE 9600 //波特率,缺省值115200
  67. #define UART5_BUF_SIZE 128 //接收一、二级缓冲区大小,缺省值2000
  68. #define UART5_RECEIVE_OVERTIME 100 //字节超时时间, 单位为ms,缺省值100ms
  69. extern uint8_t UART5_ready_buf[];
  70. extern volatile uint8_t UART5_ready_buf_ok;
  71. extern volatile uint16_t UART5_ready_buf_len;
  72. /* 函数申明 ------------------------------------------------------------------*/
  73. void USART_Initializes(void);
  74. void USART1_SendByte(uint8_t Data);
  75. void USART1_SendNByte(uint8_t *pData, uint16_t Length);
  76. void USART1_Printf(uint8_t *String);
  77. void USART2_SendByte(uint8_t Data);
  78. void USART2_SendNByte(uint8_t *pData, uint16_t Length);
  79. void USART2_Printf(uint8_t *String);
  80. void UART4_SendByte(uint8_t Data);
  81. void UART4_SendNByte(uint8_t *pData, uint16_t Length);
  82. void UART4_Printf(uint8_t *String);
  83. void UART5_SendByte(uint8_t Data);
  84. void UART5_SendNByte(uint8_t *pData, uint16_t Length);
  85. void UART5_Printf(uint8_t *String);
  86. void USART_ReceiveOvertimeProcess(void);
  87. void USART_printfHex(const uint8_t* SendChars,uint16_t len);
  88. uint8_t Ascii2Hex(uint8_t *hex, uint8_t *ascii, uint8_t asciiLen);
  89. uint8_t Hex2Ascii(uint8_t *ascii, uint8_t *hex, uint8_t hexLen);
  90. void UsartToLora(void );
  91. extern volatile uint8_t m_state_code;
  92. typedef enum
  93. {
  94. M_STATE_IDLE=0,
  95. M_STATE_ERASE_APP1,
  96. M_STATE_ERASE_APP2,
  97. M_STATE_ERASE_APP3,
  98. M_STATE_CP_APP1_APP2,
  99. M_STATE_CP_APP3_APP1,
  100. M_STATE_CP_APP2_APP1,
  101. M_STATE_RD_APP1,
  102. M_STATE_RD_APP2,
  103. M_STATE_RD_APP3,
  104. M_STATE_RUN_APP1,
  105. M_STATE_GET_INFO,
  106. M_STATE_RST
  107. } t_mStateCodes;
  108. extern uint32_t usart2_cmd_time_out;
  109. extern uint32_t usart2_cmd_time_counter;
  110. #endif /* _USART_H */
  111. /**** Copyright (C)2016 sun. All Rights Reserved **** END OF FILE ****/