杭州电子科技大学电子系统综合设计报告.docx_第1页
杭州电子科技大学电子系统综合设计报告.docx_第2页
杭州电子科技大学电子系统综合设计报告.docx_第3页
杭州电子科技大学电子系统综合设计报告.docx_第4页
杭州电子科技大学电子系统综合设计报告.docx_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

杭州电子科技大学课程设计报告 课 程 报 告姓 名: 学 号: 学 院: 专 业: 序 号: 第5页一、系统框图1.1系统框图按键MCUPCPL2303模拟量输入 USART USB LED图1二、STM32端软件流程图及关键代码2.1 下位机软件流程图上电初始化复位按键 Y N数据处理&反馈信息AD&按键PC USARTLED图22.2 关键代码2.2.1 单片机系统往PC机发送信息并在PC机上显示 (1)扫描法识别并发送按键信息if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8) = 0)/K2按下while(1)if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8) = 1)/K2松开USART1_Puts(k2n);/发送的字符为K2break;(2)发送按键信息函数void USART1_Puts(u8 *str) while(*str) USART_SendData(USART1, *str+); while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) = RESET); /等待发送完成 注:此处以K2键为例,K3的设置类似于K2。当按键被按下时,PA8为低电平,此处的if语句检测到K2被按下;然后执行while中的if语句,此时若K2键被松开则PA8为高电平,从而检测出了K2键被按下并松开,即可将K2的被按下的信息发送给PC机,在PC机界面上显示出K2。2.2.2 PC机控制输出信息点亮LED灯USART1_Gets();/接收字符switch(data)/设置GPIOA的0-15的端口位case 0:GPIO_WriteBit(GPIOA, GPIO_Pin_0,(BitAction)0);break;case 1:GPIO_WriteBit(GPIOA, GPIO_Pin_1,(BitAction)0);break;case K:GPIO_Write(GPIOA, 0XFF); break;case L:GPIO_Write(GPIOA, 0X00);break;default : break;根据PC机接收到的字符,利用while语句判断,并使改编号的LED低电平发光或高电平变暗。例如,在满足case0条件时,GPIO端口中的PA0口电平为低电平,此时LED0将发光;当接收到的字符为F时,GPIO都将被置为高电平,也即是LED将全部熄灭。2.2.3 AD转换代码void displayADV(void) /模拟转数字显示temp=(float)AD_value*(3.3/4096);/4096=212,即AD的分辨率12位 tableADV0=(int)temp+0; tableADV1=.;tableADV2=(int)(temp*10)%10+0;tableADV3=(int)(temp*100)%10+0;ADC的分辨率为12位,而通过串口输入的模拟量AD_value最大值为3.3V,则将其转换为数字量为AD_value*(3.3/4096)。然后,再将其余各位字符表示出来放入tableADV字符串,就将模拟量转换成了数字量。2.3.4 发送AD转换后的数字量while(tableADVi!=0) /循环逐字输出,到结束字0 USART_SendData(USART1, tableADVi); /通过USART1发送tableADVi数据 while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) = RESET)/字符发送完毕 i+;三、PC端软件流程图及关键代码3.1 上位机关键代码3.1.1 添加额外初始化/ TODO: Add extra initialization hereif (!port.OpenPort(COM5) /修改接口名称,此时应根据每台电脑上的接口来配置return FALSE;if (!port.ConfigurePort(9600, 8, 0, 0, 0)/设置波特率为9600,数据位8位return FALSE;if(!(port.SetCommunicationTimeouts(0,100,0,0,0)/设置通信延时return FALSE;SetTimer(1, 100, NULL);/设置计时器1,间隔为100ms,使用On Timer函数return TRUE; / return TRUE unless you set the focus to a control3.1.2 根据发送数据使LED发光void CCOMTESTDlg:OnButtonSend() UpdateData(TRUE);int i;for (i = 0; i m_strSend.GetLength(); +i)/判断是否达到了接收导数据的宽度,未达到循环port.WriteByte(m_strSendi);/将接收的发送数据写入到端口,从而使LED发光3.1.3 全亮按键函数定义void CCOMTESTDlg:OnButton5() port.WriteByte(L);/按下全亮按键时,接收到的字符为L,此时所有PA口为低,LED发光MCU3.2 STM32端程序串口通信协议解析的工作流程图发送指令传到上位机str数组上位机str数组判定前三位判定指令长度AD状态读取指令大于9不大于13 为6MR其它情况判定前三位大于13位其它情况 上位机无操作上位机显示AD为6Md上位机显示灯状

温馨提示

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

评论

0/150

提交评论