博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初学C#之windowes窗口应用文件
阅读量:4166 次
发布时间:2019-05-26

本文共 3023 字,大约阅读时间需要 10 分钟。

一.与单片机通信的窗口文件常用的控件

1.ComboBox—显示一个可编辑框,并包含一个允许值下拉列表(可在程序中编辑框内的内容;也可在属性栏的Items内添加,一行表示一个值)

2.Button—按键(我们通过按键来进行我们要进行的操作,比如启动程序)
3.Label—文字说明(不用程序进行编写,显示在界面给用户以明确的说明)
4.GroupBox—在一组控件周围显示一个带有可选标题的框架(对一个或多个控件进行组合,便于使用者理解)
5.RadioButton—单选(在许多该控件的情况下选择一个)
6.Panel—允许集合分组(比如窗口文件中需要选择多个单选控件,就可以使用该控件将单选控件分隔成多个组,使各个组的选择不受彼此影响)
7.ProgressBar—进度条(显示进度,比如时间)
8.SerialPort—串口通信(如果窗口文件要通过串行口发送数据或接收数据就需要使用该控件)
9.TextBox—允许用户输入数据(通过该控件可以输入在该控件的数据发送给单片机,也可以使得接收到的数据在该控件显示出来)

二.编写窗口文件常用的编辑字符串的函数

1.获取字符串的大小写函数(注意:字符串是不可变的,所以这些函数都不会直接改变字符串的内容,而是把修改后的字符串通过函数返回值的形式返回)

ToLower():将所有字符串转换成小写形式
ToUpper():将所有字符串转换成大写形式
2.字符串去两边的空白函数—Trim();
例:

using System;using System.Collections.Generic;using System.Text;namespace 字符串函数学习{    class Program    {        static void Main(string[] args)        {            string s = "    GOOD   ";            Console.WriteLine("去两边空白函数使用前:\n|{0}|",s);//调用函数前字符串两边有空白            s=s.Trim();            Console.WriteLine("去两边空白函数使用后:\n|{0}|", s);//调用函数后字符串两边无空白            Console.ReadKey();        }    }}

运行结果

3.切割函数—Spilt();
例:

string str="abc#def#ghi";string[] star=str.Spilt('#');//这样star[0]为abc,star[1]为def,star[2]为ghi

4.替换函数—Replace();

例:

string Str="abcdefghi";Str=Str.Replace("abc","123");//这样就把Str里的所有abc替换成123了

三.串行口进行数据的接收发送

  1. 必须添加一个头文件using System.IO.Ports;
  2. Form1_Load 函数内添加一行 serialPort1.DataReceived += new SerialDataReceivedEventHandler(Port_DataReceive);
  3. 在程序内自己编写一个函数,用来进行数据的接收和发送,函数名为Port_DataReceive在该函数的参数区域第二个参数为SerialDataReceivedEventArgs e
  4. 获取所有的COM端口serialPort1.PortName
  5. 获取波特率 serialPort1.BaudRate

四.必须明白哪些东西写在keil上哪些东西写在窗口文件上

  1. 单片机等下位机与模块进行通信的时候要用到的函数均写在keil上,单片机与窗口文件等上位机进行通信时有些程序需要写在窗口文件内。
  2. 将模块获取的数据读取出来并且需要转换成我们能够看懂的字符。
  3. 使用I2C时要清楚是谁与谁在进行通信,是单片机等下位机与模块之间在进行通信,采用模拟I2C信号。
  4. 在获取到的字符串数据中添加字符等数据时可以在两个地方添加。
  5. 在keil中的程序中发送数据时在每一位数据后面添加‘48’是保证数据转换成16进制传送,也可以用0x30替代。

附MPU-92/65单片机读取六轴数据C代码

#include 
#include
#include
typedef unsigned char uchar;typedef unsigned int uint;sbit sda=P1^0;sbit scl=P1^1;#define SMPLRT_DIV 0x19//典型值:0x07#define CONFIG 0x1a//典型值:0x06#define GYRO_CONFIG 0x1b//典型值:0x18#define ACCEL_CONFIG 0x1c//典型值:0x01#define ACCEL_XOUT_H 0x3b#define ACCEL_XOUT_L 0x3c#define ACCEL_YOUT_H 0x3d#define ACCEL_YOUT_L 0x3e#define ACCEL_ZOUT_H 0x3f#define ACCEL_ZOUT_L 0x40#define TEMP_OUT_H 0x41#define TEMP_OUT_L 0x42#define GYRO_XOUT_H 0x43#define GYRO_XOUT_L 0x44#define GYRO_YOUT_H 0x45#define GYRO_YOUT_L 0x46#define GYRO_ZOUT_H 0x47#define GYRO_ZOUT_L 0x48#define PWR_MGMT_1 0x6b//电源管理,典型值:0x00(正常启用)#define WHO_AM_1 0x75//IIC地址寄存器(默认值0x68,只读)#define SlaveAddress 0xd0//IIC写入时的地址字节数据,+1为读取//定义掉电模式变量uchar dis[6];bit WK_Flag;//函数声明void delay(uint k);//MPU操作函数void Init();void delay5us();void I2C_start();void I2C_stop();void I2C_SendACK(bit ack);bit I2C_RecvACK();void I2C_Sendbyte(uchar dat);uchar I2C_Recvbyte();uchar Sigle_ReadI2C(uchar REG_Address);//读取I2C数据void Sigle_WriteI2C(uchar REG_Address,uchar REG_data);//向I2C写入数据//整数转字符串void SeriPushSend(uchar send_data){ SBUF=send_data; while(!TI); TI=0;}//延时void delay(uint k){ uint i,j; for(i=0;i
你可能感兴趣的文章
用Python的Pandas和Matplotlib绘制股票KDJ指标线
查看>>
面试必问:对java多线程里Synchronized的思考
查看>>
最近接了本分布式组件面试书的选题,请大家一起来提意见
查看>>
Redis整合MySQL和MyCAT分库组件(来源是我的新书)
查看>>
Java程序员普遍存在的面试问题以及应对之道(新书第一章节摘录)
查看>>
程序员高效出书避坑和实践指南
查看>>
计算机方面毕业生怎样写简历
查看>>
从软件公司的异同点讲起,聊聊未来的程序员该如何选公司和谋规划
查看>>
我不想安于当前的限度,以达到所谓的幸福,回顾下2020年的我
查看>>
如何在面试中介绍自己的项目经验(面向java改进版)
查看>>
通过写n本书的积累,我似乎找到了写好技术文章的方法(回复送我写的python股票电子书)
查看>>
如果很好说出finalize用法,面试官会认为你很资深
查看>>
Java面试官经验谈:如何甄别候选人真实的能力,候选人如何展示值钱技能
查看>>
分析若干没面试机会和没体现实力的简历
查看>>
用python的matplotlib和numpy库绘制股票K线均线
查看>>
以互联网公司的经验告诉大家,架构师究竟比高级开发厉害在哪?
查看>>
GanttProject 使用的控件第三方包:jdnc-modifBen.jar
查看>>
ps、grep和kill联合使用杀掉进程
查看>>
openfire中的mina框架使用
查看>>
去掉Windows Messager的自动登录
查看>>