串口实验报告

串口实验报告

ID:39477084

大小:79.16 KB

页数:4页

时间:2019-07-04

串口实验报告_第1页
串口实验报告_第2页
串口实验报告_第3页
串口实验报告_第4页
资源描述:

《串口实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《嵌入式系统开发》课程实验报告班级:电信141姓名:冯录鹏学号:140407112实验日期:5月6日电子通信工程系实验一串口通信实验学时安排:2学时一、实验目的:1、熟悉STM32的编程环境的使用;2、掌握STM32的串口的编程;二、实验步骤:1.在keil环境下编辑源文件,并编译。2.在野火STM32实验板上运行,调试程序,观察实验现象,理解并掌握相关知识。3.编写STM32的串行通信程序,实现由串口调试助手输入任意字符串,STM接收后返回到串口调试助手输出。三、实验内容:设计思路及程序代码。1、建立工程,编写主要代码2、时钟配置RCC_APB2Periph

2、ClockCmd(RCC_APB2Periph_USART1

3、RCC_APB2Periph_GPIOA,ENABLE);3、GPIOA配置GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;//USART1_TX(PA.9)GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//复用推挽输出GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化PA9GPIO_InitStru

4、cture.GPIO_Pin=GPIO_Pin_10;//USART1_RX(PA.10)GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;//浮空输入GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化PA104、USART初始化设置USART_InitStructure.USART_BaudRate=bound;//一般设置为9600;USART_InitStructure.USART_WordLength=USART_WordLength_8b;//字长为8位数据格式US

5、ART_InitStructure.USART_StopBits=USART_StopBits_1;//一个停止位USART_InitStructure.USART_Parity=USART_Parity_No;//无奇偶校验位USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//无硬件数据流控制USART_InitStructure.USART_Mode=USART_Mode_Rx

6、USART_Mode_Tx;//收发模式USART_Init(USART1

7、,&USART_InitStructure);//初始化串口USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//开启中断USART_Cmd(USART1,ENABLE);//使能串口5、串口中断初始化函数voidUSART1_IRQHandler(void)//串口1中断服务程序{u8Res;#ifdefOS_TICKS_PER_SEC//如果时钟节拍数定义了,说明要使用ucosII了.OSIntEnter();#endifif(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET

8、){Res=USART_ReceiveData(USART1);//(USART1->DR);//读取接收到的数据if((USART_RX_STA&0x8000)==0)//接收未完成{if(USART_RX_STA&0x4000)//接收到了0x0d{if(Res!=0x0a)USART_RX_STA=0;//接收错误,重新开始elseUSART_RX_STA

9、=0x8000;//接收完成了}else//还没收到0X0D{if(Res==0x0d)USART_RX_STA

10、=0x4000;else{USART_RX_BUF[USART_RX_STA&0X3F

11、FF]=Res;USART_RX_STA++;if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;}}}#ifdefOS_TICKS_PER_SEC//如果时钟节拍数定义了,说明要使用ucosII了.OSIntExit();#endif}7、在main函数编写intmain(void){u8t;u8len;delay_init();//延时函数初始化NVIC_Configuration();//设置中断优先级分组uart_init(9600);//串口初始化为9600LED_Init();//初始化与LED连接的硬

12、件接口while(1){if(USAR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。