实验11 扩展IO功能示例
1. 实验目的本实验演示了扩展IO的相关功能及使用方法。扩展IO的功能有普通输入、普通输出、中断输入、AD输入、PWM输出和捕获输入的功能。G系列串口屏(3.5寸及以下)支持6个扩展IOS系列串口屏(4.3寸及以上)最多可支持25个扩展IO。每个IO的功能不一样项目设计的时候需要提前了解到要用到的IO是否支持所需功能比如如有的IO能支持AD输入有的能支持PWM输出具体的IO功能介绍参考第七章。本实验基于4.3寸480*272分辨率的串口屏若要验证其他尺寸的串口屏可在VP软件里修改项目型号文件-编辑项目或者参考本实验重新设计工程。2. 页面设计本实验一共6个页面分页演示了不同IO功能的用法。(1)home页面一共5个按钮点击对应的按钮可切页到其他页面。(2) GPIO页面。3个IO控件对应的引脚号是io7,io8,io91个定时器控件定时1秒去读取io8引脚的电平状态3个文本控件分别显示输出、输入、中断输入的IO引脚号4个整数控件分别显示输出值、输入值、中断输入值和中断次数1个双态按钮控件控制输入IO的电平弹起是11个按钮控件点击返回home页面(3) AD页面1个ADC控件引脚号io61个定时器控件定时1秒去读取adc控件的采样值1个浮点数控件用于显示电压值1个按钮控件点击返回home页面(4) PWM页面1个PWM控件引脚号io01个键盘控件用于输入频率和占空比2个整数控件分别显示频率和占空比1个双态按钮控件控制输出使能按下使能弹起不使能1个按钮控件点击返回home页面(5) CAPTURE页面1个Capture控件引脚号io31个定时器控件定时1秒去读取Capture控件的频率、占空比和脉冲个数3个整数控件分别显示频率、占空比、脉冲个数1个按钮控件点击返回home页面(6) ExUART页面1个扩展协议解析器控件默认引脚号io1,io22个文本控件分别显示接收区和发送区的文本1个按钮控件点击”发送”后扩展串口将发送区的字符串发出去1个按钮控件点击返回home页面注意在页面设计时提前分配好IO的功能如果同一个IO引脚被多次绑定编译的时候将会报错。错误提示类型举例3. 串口屏脚本处理本实验的脚本处理很简单选中控件可以查看相关的脚本。IO相关控件属性的读和写列举几个关键的说明。(1) GPIO页面输出电平控制io7.val0;io7.val1;输入电平读取io8num.valio8.val;//定时1秒读取io8的电平状态0或者1IO中断电平读取和中断处理(num9显示累加)io9num.valio9.val;num9.val;(2) AD页面读取电压值num1.valadc.val;//定时1秒读取IO6引脚上的模拟电压值(3) PWM页面根据键盘输入值设置频率和占空比intval;valstringToInt(keyboard4.txt);//将键盘的字符串转换成整数if(var6.val0){if((val1)(val1000000))//频率范围1Hz~1MHz{num_freq.valval;pwm3.frequencynum_freq.val;//设置PWM输出频率}}else{if((val0)(val100))//占空比范围0~100{num_duty.valstringToInt(keyboard4.txt);pwm3.dutyRationum_duty.val;//设置PWM输出占空比}}keyboard4.x-500;//隐藏键盘设置PWM输出使能pwm3.enable1;//PWM输出使能tgbtn1.txtenable;设置PWM输出不使能pwm3.enable0;//PWM输出不使能tgbtn1.txtdisable;(4) CAPTURE页面获取捕获参数//定时器去读输入捕获控件的属性频率、占空比、脉冲个数num_freq.valCapture4.frequency;num_duty.valCapture4.dutyRatio;num_cnt.valCapture4.pulseCount;(5) ExUART页面字符串发送//扩展串口发送函数;//更多的操作函数访问方式为输入控件名称然后输入., 即exptl4.funexptl4.uartSend(text4.txt);接收并显示//将收到的串口数组转换为字符串并赋值给文本显示text3.txt bytesToAscii(exptl4.rxBuf,0,exptl4.rxLen);4. 下载验证将编译后编译后下载到4.3寸带显示屏(带扩展IO模块)即可看到如下界面为了测试扩展IO的功能我们需要将扩展IO通过软排线接到IO测试板上如下图用万用表、示波器检测IO测试板即可。(1) GPIO测试。触摸控制GPIO页面双态按钮的状态用万用表测试io7的输出电压变化0V或者3.3V给io8接入3.3V或者GND观察显示屏上io8的电平值给io8接入3.3V或者GND观察显示屏上io9的电平值和中断次数(2) AD测试。给i06引脚接入0~3.3V模拟电压。观察显示屏上AD采用出来的电压(3) PWM测试。点击输出使能设置pwm输出可选修改频率和占空比用过示波器检测io0引脚上的波形。(4) CAPTURE测试将io0输出的pwm波形接入io3观察显示屏上捕获到的频率、占空比和脉冲个数(5) ExUART测试将io1接入TTL工具的rxio2接入TTL工具的tx然后将TTL工具接入电脑用串口助手收发测试。测试接线如下