STM32串口驱动例程
定义:
TXD1----- PA9-US1-TX RXD1----- PA10-US1-RX 速率:115200,n,8,1 [cpp] view plaincopyprint?
1. /* Includes ------------------------------------------------------------------*/ 2. #include \ 3. #include \ 4. #include \ 5. #include \ 6. #include \ 7. 8. 9.
10. /* Private variables ---------------------------------------------------------*/ 11. USART_InitTypeDef USART_InitStructure;
12. uint8_t TxBuffer1[] = \13. uint8_t RxBuffer1[],rec_f,tx_flag; 14. __IO uint8_t TxCounter1 = 0x00; 15. __IO uint8_t RxCounter1 = 0x00; 16.
17. uint32_t Rec_Len; 18. 19.
20. /* Private function prototypes -----------------------------------------------*/ 21. void RCC_Configuration(void); 22. void GPIO_Configuration(void); 23. void NVIC_Configuration(void); 24.
25. void Delay(__IO uint32_t nCount);
26. void USART_OUT(USART_TypeDef* USARTx, uint8_t *Data,...); 27. char *itoa(int value, char *string, int radix);
28. void USART_Config(USART_TypeDef* USARTx); 29. 30.
31. GPIO_InitTypeDef GPIO_InitStructure; 32. USART_InitTypeDef USART_InitStruct;
33. USART_ClockInitTypeDef USART_ClockInitStruct; 34.
35. /**************************************************************************** 36. * 名 称:void ili9325_DrawPicture(u16 StartX,u16 StartY, u8 Dir,u8 *pic) 37. * 功 能:在指定座标范围显示一副图片 38. * 入口参数:StartX 行起始座标 39. * StartY 列起始座标 40. * Dir 图像显示方向 41. * pic 图片头指针 42. * 出口参数:无
43. * 说 明:图片取模格式为水平扫描,16位颜色模式 取模软件img2LCD 44. * 调用方法:ili9325_DrawPicture(0,0,0,(u16*)demo);
45. ****************************************************************************/ 46. void USART_Config(USART_TypeDef* USARTx){
47. USART_InitStructure.USART_BaudRate = 115200; //速率
115200bps
48. USART_InitStructure.USART_WordLength = USART_WordLength_8b; //
数据位8位
49. USART_InitStructure.USART_StopBits = USART_StopBits_1; //停止
位1位
50. USART_InitStructure.USART_Parity = USART_Parity_No; //无校验
位
51. USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlo
wControl_None; //无硬件流控
52. USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_T
x; //收发模式 53.
54. /* Configure USART1 */
55. USART_Init(USARTx, &USART_InitStructure); //配置串口参
数函数
56. 57.
58. /* Enable USART1 Receive and Transmit interrupts */
59. USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); //使能
接收中断
60. USART_ITConfig(USART1, USART_IT_TXE, ENABLE); //使能
发送缓冲空中断 61.
62. /* Enable the USART1 */
63. USART_Cmd(USART1, ENABLE); 64. }
65. /**************************************************************************** 66. * 名 称:int main(void) 67. * 功 能:主函数 68. * 入口参数:无 69. * 出口参数:无 70. * 说 明: 71. * 调用方法:无
72. ****************************************************************************/ 73. int main(void) 74. { 75.
76. uint8_t a=0;
77. /* System Clocks Configuration */
78. RCC_Configuration(); //系统时钟设置 79.
80. /*嵌套向量中断控制器
81. 说明了USART1抢占优先级级别0(最多1位) ,和子优先级级别0(最多
7位) */
82. NVIC_Configuration(); //中断源配置 83.
84. /*对控制LED指示灯的IO口进行了初始化,将端口配置为推挽上拉输出,口
线速度为50Mhz。PA9,PA10端口复用为串口1的TX,RX。
85. 在配置某个口线时,首先应对它所在的端口的时钟进行使能。否则无法配置成
功,由于用到了端口B, 因此要对这个端口的时钟