串口实验报告_第1页
串口实验报告_第2页
串口实验报告_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式系统开发课程实验报告班级:电信141名:学号:实验日期:56日电子通信工程系实验一串口通信实验学时安排:2 学时一、实验目的:1、熟悉 STM32 的编程环境的使用;2、掌握 STM32 的串口的编程;二、实验步骤:keil在野火STM32STM32口调试助手输出。三、实验内容:设计思路及程序代码。1、建立工程,编写主要代码2、时钟配置RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);3、GPIOA 配置GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;/

2、USART1_TX GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;/复用推挽输出/初始化PA9/USART1_RXGPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;/浮空输入GPIO_Init(GPIOA, &GPIO_InitStr

3、ucture);/初始化PA104、USART 初始化设置USART_InitStructure.USART_BaudRate = bound;/一般设置为 9600;USART_InitStructure.USART_WordLength = / 8 位数据格式USART_InitStructure.USART_StopBitsUSART_StopBits_1;/ 个停止位USART_InitStructure.USART_ParityUSART_Parity_No;/ 奇偶校验位USART_InitStructure.USART_HardwareFlowControl = USART_Ha

4、rdwareFlowControl_None;/无硬件数据流控制USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; /收发模式USART_Init(USART1, &USART_InitStructure); 始化串口USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);/ 启中断USART_Cmd(USART1, ENABLE);/使能串口5、串口中断初始化函数void USART1_IRQHandler(void)/1 中断服务程序u8 Res;#ifdef OS_TICKS_

5、PER_SEC OSIntEnter();#endif/如果时钟节拍数定义了,说明要使用ucosII 了.if(USART_GetITStatus(USART1, USART_IT_RXNE)!= RESET)Res =USART_ReceiveData(USART1);/(USART1-DR); /if(USART_RX_STA&0 x4000)/ 接 收 到 了 0 x0d if(Res!=0 x0a)USART_RX_STA=0;/接收错误,重新开始else USART_RX_STA|=0 x8000; /接收完成了else / 还 没 收 到 0X0D if(Res=0 x0d)USA

6、RT_RX_STA|=0 x4000;elseUSART_RX_BUFUSART_RX_STA&0X3FFF=Res ; USART_RX_STA+;if(USART_RX_STA(USART_REC_LEN-1)USART_RX_STA=0;#ifdef OS_TICKS_PER_SEC OSIntExit();#endif/如果时钟节拍数定义了,说明要使用ucosII 了.7、在 main 函数编写int main(void) u8 t; u8 delay_init();/延时函数初始化NVIC_Configuration(); uart_init(9600); LED_Init();while(1) if(USART_RX_STA&0 x8000) / 设置中断优先级分组/串口初始化为 9600/初始化与 LED 连接的硬件接口/接收完毕len=USART_RX_STA&0 x3fff;/得到此次接收到的数据长度printf(rn for(t=0;tlen;t+)USART_SendData(USART1,USART_RX_BUFt);/发送一个字节的数据while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)=RESET); 待发送结束LED1=!LED1;delay_ms(200);LED1=!LED1;printf(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论