1、实验三 串口通信实验【实验目的】 1、掌握ARM Cortex-M3的串行口工作原理2、掌握ARM Cortex-M3的UART寄存器配置方法3、学习编程实现ARM Cortex-M3的UART通信【实验仪器】1、硬件:STM32F103CB开发板,ULINK(或JLINK)仿真器套件,PC机 2、软件: RealView MDK开发套件, WindowsXP。【实验电路及连线】串口的发送端U1_TX,接收端U1_RX,分别连接GPIO的PA9和PA10。【实验内容】1、熟悉RealView MDK开发套件的使用2、建立一个简单的USART工程。3、编写程序,实现STM32单片机通过串口1 发
2、送一个字符串“STM32F103CB USART1 TEST!”,并在PC机的超级终端上显示。要求用printf函数输出。【实验步骤、分析及结果(在下面写出你的代码)】结果:代码:#include“stm32f10x_lib.h“#include“stdio.h“void GPIO_Configuration()GPIO_InitTypeDef GPIO_InitStructure ;RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);G
3、PIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA,int fputc(int ch, FILE*f)USART_SendData(USART1,
4、 (u8) ch);while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) = RESET) ; return ch;void USART_Configuration(void)USART_InitTypeDef USART_InitStructure;/RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); /放到GPIO_ConfigurationUSART_InitStructure.USART_BaudRate=115200;USART_InitStructure.USART_WordLen
5、gth=USART_WordLength_8b; / 8 位传输;USART_InitStructure.USART_StopBits=USART_StopBits_1; /1 个停止位USART_InitStructure.USART_Parity=USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None; /禁止硬件流控制,禁止 RTS 和 CTS 信号USART_InitStructure.USART_Mode=USART_Mode_Rx | USART_Mode_Tx; /全双工USART_Init(USART1, /初始化 UARTxUSART_Cmd(USART1,ENABLE); /使能串口一main()/ u32 i;/ char a=“STM32F103CB USART1 TEST!“;GPIO_Configuration();USART_Configuration();/*可以在发送之前清除标志位 TC*/printf(“STM32F103CB USART1 TEST!“);while(1);教师评语:实验成绩: 教师: 年 月 日