杭州电子科技大学电子系统综合设计报告
姓名:学号:学院:专业:序号:
课程报告
杭州电子科技大学课程设计报告
一、系统框图
1.1系统框图
按键 USART 模拟量输入 USB MCU LED 图1
PL2303 PC 二、STM32端软件流程图及关键代码
2.1 下位机软件流程图
上电 初始化
复位按键 N Y PC USART 数据处理&反馈信息 AD&按键 LED
图2
第1页
杭州电子科技大学课程设计报告
2.2 关键代码
2.2.1单片机系统往PC机发送信息并在PC机上显示
(1)扫描法识别并发送按键信息
if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8) == 0) { }
void USART1_Puts(u8 *str) {
while(*str) }
{
USART_SendData(USART1, *str++);
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); //等待发送完成 } while(1) { }
if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8) == 1)
{ }
USART1_Puts(\//发送的字符为K2 break;
//K2松开
//K2按下
(2)发送按键信息函数
注:此处以K2键为例,K3的设置类似于K2。当按键被按下时,PA8为低电平,此处的if语句检测到K2被按下;然后执行while中的if语句,此时若K2键被松开则PA8为高电平,从而检测出了K2键被按下并松开,即可将K2的被按下的信息发送给PC机,在PC机界面上显示出K2。
2.2.2PC机控制输出信息点亮LED灯
USART1_Gets();
switch(data) { }
第2页
case '0': case '1': case 'K': case 'L':
GPIO_WriteBit(GPIOA, GPIO_Pin_0,(BitAction)0);break; GPIO_WriteBit(GPIOA, GPIO_Pin_1,(BitAction)0);break; GPIO_Write(GPIOA, 0XFF); break; GPIO_Write(GPIOA, 0X00);break;
//接收字符
//设置GPIOA的0-15的端口位
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);
}
tableADV[0]=(int)temp+'0'; tableADV[1]='.';
tableADV[2]=((int)(temp*10))+'0'; tableADV[3]=((int)(temp*100))+'0';
//4096=2^12,即AD的分辨率12位
//模拟转数字显示
ADC的分辨率为12位,而通过串口输入的模拟量AD_value最大值为3.3V,则将其转换为数字量为AD_value*(3.3/4096)。然后,再将其余各位字符表示出来放入tableADV[]字符串,就将模拟量转换成了数字量。
2.3.4 发送AD转换后的数字量
while(tableADV[i]!='\\0')
{
USART_SendData(USART1, tableADV[i]); //通过USART1发送tableADV[i]数据 while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET){}
//字符发送完毕
}
i++;
//循环逐字输出,到结束字'\\0'
三、PC端软件流程图及关键代码
3.1 上位机关键代码 3.1.1添加额外初始化
// TODO: Add extra initialization here
if (!port.OpenPort(\
return FALSE;
//设置波特率为9600,数据位8位 第3页
//修改接口名称,此时应根据每台电脑上的接口来配置
if (!port.ConfigurePort(9600, 8, 0, 0, 0))
杭州电子科技大学课程设计报告
数
return TRUE; // return TRUE unless you set the focus to a control
return FALSE;
//设置通信延时
return FALSE;
//设置计时器1,间隔为100ms,使用On Timer函
if(!(port.SetCommunicationTimeouts(0,100,0,0,0))) SetTimer(1, 100, NULL);
3.1.2 根据发送数据使LED发光
voidCCOMTESTDlg::OnButtonSend() {
}
UpdateData(TRUE); inti;
for (i = 0; i //将接收的发送数据写入到端口,从而使LED发光 3.1.3全亮按键函数定义 voidCCOMTESTDlg::OnButton5() { } port.WriteByte('L');//按下全亮按键时,接收到的字符为L,此时所有PA口为低,LED发光 3.2 STM32端程序串口通信协议解析的工作流程图 MCU 发送指令传到上位机str数组 上位机str数组 判定指令长度 大于13位 判定前三位 为6Md 灯状态读取指令 大于9不大于13 其它情况 判定前三位 为6MR AD状态读取指令 其它情况 上位机无操作 上位机显示AD 上位机显 示灯状态 第4页 杭州电子科技大学课程设计报告 四、课程设计改进建议 4.1 建议 像这种类似的课程设计,不应该放在短学期里,而应该给予更高的重视。这种课程才是更能提高学生能力的好课,远比学习理论课给人的感觉要好很多。但是,总感觉学校好像不太重视,也感觉大学在这方面训练的还不够。 第5页
相关推荐:
- [综合文档]应答器设备技术规范(征求意见稿)A1
- [综合文档]教师 2012年高考政治试题按考点分类汇
- [综合文档]保险公司的总经理助理竞职演说
- [综合文档]卫生应急大练兵大比武活动考试--题库(
- [综合文档]徐州经济技术开发区总体规划环境影响报
- [综合文档]汉语拼音表(带声调)
- [综合文档]二年级 上 思维训练( 1~18)
- [综合文档]特色学校五年发展规划
- [综合文档]机床经常出现报警“X1轴定位监控”
- [综合文档]《电子技术基础》21.§5—2、3、4 习题
- [综合文档]浙江省深化普通高中课程改革
- [综合文档]CRISP原理 - 图文
- [综合文档]2017年电大社会调查研究与方法形考答案
- [综合文档]浅析建筑施工安全毕业论文
- [综合文档]《回忆我的母亲》名师教案
- [综合文档]装饰装修工程监理规划
- [综合文档]三下乡心得体会-文艺
- [综合文档]柱计算长度系数 - 图文
- [综合文档]全流程思考,提高燃电系统热电转换率--
- [综合文档]2018年嘉定区中考物理一模含答案
- 433M车库门滚动码遥控器
- 8、架空线路施工规范
- 大学四年声乐学习的体会
- 新北师大版五年级数学上册《轴对称再认
- 部编版五年级上册语文第六单元小结复习
- 小学六年级英语形容词用法
- 第2课 抗美援朝保家卫国 课件01(岳麓版
- 2015年天津大学运筹学基础考研真题,考
- 微机计算机控制技术课后于海生(第2版)
- 安全教育实践活动
- Delphi程序设计教程_第1章_Delphi概述
- 第八讲 工业革命与启蒙运动
- 《中华人民共和国药典》2005年版二部勘
- 科粤版九年级化学2.3构成物质的微粒(1)
- 西师大版数学三年级下册《长方形、正方
- ch6_冒泡排序演示
- 第4章 冲裁模具设计
- 浙江中小民营企业员工流失论文[终稿]
- 再议有线数字电视市场营运模式
- 昆明供水工程监理大纲




