接收板
硬件部分
测试:
输出io 正常
输入io 正常
PWM波 正常
继电器 正常
串口 1、3正常,2max232芯片引脚连线有问题
温湿度模块 正常
GPS模块 数据解码有问题
输出与输入:
采用芯片:SN74LVC8T245PW
输入:
测试方法:硬件,将B1接高电平5v,用万用表测试A1管脚是否输出高电平3.3v,再将B1接低电平,用万用表测试A1管脚是否输出低电平,如均符合要求,则当前正常;依次测试后面的管脚。
输出:
测试:编写单片机管脚输出程序,对测试管脚先输出1,如A1,则用万用表测试对应的输出管脚B1应为高电平5V,单片机输出0,则B1应为0V。
PWM波:
设定指定占空比的pwm波并通过程序输出,stm32输出的pwm波为3.3V,需通过光耦高电平用示波器测试输出端信号波形即可。
注意:光电耦合器有最大工作频率,单片机输出pwm波频率太高的话,经过光耦后输出波形会失真。本次采用的芯片最大不失真频率约为5kHz。
串口:
收发通过一个跳线帽接到一个2*10的牛角座(具有方向性,方便用户安插)上。
注意:跳线帽的作用,因为不确定从电脑输出的DB9接口段的收发管脚位置,故留出一跳线帽区域,方便调整串口连接。
牛角座通过一FC10P 2.54转DB9线引出,再通过一USB-serial转接线连到电脑段。
注意:单片机的发送端(Tx)接电脑端的接收端(Rx),电脑端的发送端(Tx)接单片机的接收端(Rx),千万不能搞反!
串行口常用的三根线(TXD RXD GND),有这三根就可以读写数据了。
9芯 | 信号方向来自 | 缩写 | 描述 |
1 | 调制解调器 | CD | 载波检测 |
2 | 调制解调器 | RXD | 接收数据 |
3 | PC | TXD | 发送数据 |
4 | PC | DTR | 数据终端准备好 |
5 |
| GND | 信号地 |
6 | 调制解调器 | DSR | 通讯设备准备好 |
7 | PC | RTS | 请求发送 |
8 | 调制解调器 | CTS | 允许发送 |
9 | 调制解调器 | RI | 响铃指示器 |
发送板和接收板的外接串口1、3的外接2*5端子接线有误,牛角座的管脚序号与DB9并不是一一对应的,而是具有如下的关系:
如正确设置了连线关系,则电脑USB转串口采用DB9公头时,跳线帽接在2、4和3、5两组管脚上,采用母头时,跳线帽接在1、3和4、6两组管脚上。
继电器
温湿度模块
GPS模块
软件部分
输入IO
GPIO_InitTypeDef GPIO_InitStructureD; //定义GPIO配置结构体
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);//使能PORTD时钟
GPIO_InitStructureD.GPIO_Pin = GPIO_Pin_14|GPIO_Pin_15; //管脚声明
GPIO_InitStructureD.GPIO_Mode = GPIO_Mode_IPU; //输入模式,上拉输入
GPIO_Init(GPIOD, &GPIO_InitStructureD); //GPIO初始化
t[0]=GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_14); //读,GPIO输入,并赋值给相应的变量
t[1]=GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_15);
输出IO
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//时钟使能
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //管脚配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
GPIO_Init(GPIOC, &GPIO_InitStructure); //GPIO初始化
GPIO_ResetBits(GPIOC,GPIO_Pin_10); //输出低电平
//GPIO_SetBits(GPIOC,GPIO_Pin_10); //输出高电平
PWM波
stdarg.h stdarg是由standard(标准) arguments(参数)简化而来,主要目的为让函数能够接收可变参数
发送板
硬件部分
测试:
按键:
KEY[1-6]接到单片机管脚上,单片机通过读取管脚输入即可确定按键状态。
AD
软件部分
16.6.26、28
主要工作:下载调试代码,测试上海交通大学项目的电路板发送、接收板功能
6.30发送板整体测试
一、焊接发送板到机盒顶按键、摇杆的连线时,引脚最好表贴的按键、摇杆的接线端,且线头方向为竖直,因为取下机盒顶盖时一般是垂直上下去放,这样可以减轻接线端的扭折程度,使其不会很快被折断;
外部按键依次接单片机上按键1~6 对应单片机上的PF5~0 正常
7.01
一、整合发送板代码,重点是发送板与接收板之间的串口通讯,读发帧头是关键,
进度:发送板发送数据部分代码已经写好;接收数据部分,读帧头部分完成,数据接收完成,对接收数据的处理未写
驱动:Silicon Labs CP210x USB to UART Bridge Driver
驱动名配置在.inf文件里,但驱动程序可能对文件进行校验,文件一有改动随即失效,是驱动不能正常安装。
7.02
继电器,正常状态下,com与close相连,输入高电平,与open相连
一、自己编写的子模块最好放到一同一的文件夹下面,可命名为HARDWARE或者SYSTEM或者其他,并在该文件夹下面新建两个子文件:inc存放头文件(.h),src存放函数实现文件(.c),
当需要给工程文件夹添加新文件时,右键单击要添加的组(group),在src中寻找文件,同时将inc目录的路径添加到如下工程选项中。
要有文件头、文件尾。函数定义前面要加函数说明。注释位置最好统一。一个子函数代码最好不超过20行,太多的话则分散成几个小点的子函数。
一块代码为实现一个功能紧挨着放一起,注释在第一行代码上方,采用/*功能说明*/格式,单行语句注释在语句后面,采用"//语句功能说明 "格式。