十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
串口通信最终都是用二进制传输的,你用代码把二进制转化成十六进制就可以了。不需要额外设置。
10年的怀仁网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整怀仁建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“怀仁网站设计”,“怀仁网站推广”以来,每个客户项目都认真落实执行。
串口通讯不需要多线程吧
如果你执意要学
分开学 这个是两个不同的概念
串口通讯和多线程分开学
单片机因其自身的优点,在嵌入式过程控制、自动化仪器仪表、数据采集和处理、计算机系统外设等方面已得到广泛应用。利用FoxPro for Windows提供的API库FOXTOOLS.FLL访问Windows的特殊功能,可以在FoxPro for Windows语言环境下直接实现和其它计算机的通信。
1 硬件接口电路
PC机和单片机间是一对一连接,采用RS—232C全双工串行通信方式。与PC机串行口连接的是9芯D型插座,其所有引脚的定义及对应的信号电平均按照RS—232C标准规定连接和设计。本设计中只使用其中的3根信号线:发送数据(TXD),接收数据(RXD)和信号地(GND)。
RS—232C标准接口的输入/输出信号电平为EIA电平:即对于输入信号,逻辑“1”为-15~-3V(通常用-12V),逻辑“0”为+3~+15V(通常用+12V)。对于输出信号,逻辑“1”为-15~-5V(通常用-12V),逻辑“0”为+5~+15V(通常用+12V)。由于一般单片机应用电路的输入/输出信号电平为CMOS或TTL电平,因此,为了实现RS—232C方式下PC机与单片机之间输入/输出信号电平的匹配,在RS—232C接口和单片微处理机的串行口之间,用MAX232来实现EIA电平与CMOS/TTL电平之间的相互转换。MAX232是+5V单电源供电,内部使用升压电路和极性转换电路获得EIA正负逻辑电平,省略了-12V和+12V 2组电源。
2 串行通信的软件实现方法
PC机和单片机之间要实现串行通信,除要遵守RS—232C串行通信协议外,还必须具有各自的通信应用软件。虽不同的单片机系统,使用不同的汇编语言编制其应用程序,但通信软件的设计思路是一样的:即PC机为主动方式,单片机根据PC机发来的命令,判断是要求发送还是接收数据。若是发送命令,则准备好所需数据和校验码,分别填入串行缓冲器发送给PC机,然后读取PC机送来的返回码,若是错误码,则需重新发送数据。若是接收命令,则将PC机发送到串行缓冲器中的数据取出后存放到一固定存储区内。若接收数据有错,则发一错误码给PC机,然后重复刚才的接收过程。这里需注意单片机和PC机校验数据的方法要一致。下面详细介绍PC机上通信软件的实现方法。
FoxPro for Windows应用程序要实现与单片机应用程序之间的数据传递,必须利用其API库函数注册并运行Windows.DLL通信函数来访问串行口。.FLL(Fox Link Library)文件是API使用的外部连接库的形式,它实际上也是1个Windows.DLL(Dynamic Link Library)文件,允许FoxPro for Windows与用C/C++或汇编语言编写的程序接口。用户也可将自己编写的一些功能函数放入自定义的.FLL库中。FOXTOOLS.FLL是由FoxPro for Windows提供的API库。安装FoxPro for Windows时已将其放入\FOXPROW子目录中。FOXTOOLS.FLL提供了对不同的Windows函数的访问。在编写FoxPro for Windows通信程序时,首先用以下命令装入该库:
SET LIBRARY TO SYS(2004)+“FOXTOOLS.FLL” ADDITIVE
其中,SYS(2004)返回FoxPro for Windows启动目录的名称,加入ADDTIVE可保证任何以前装入的库有效。采集者退散
用下面的命令可取消FOXTOOLS.FLL库:
RELEASE LIBRARY SYS(2004)+“FOXTOOLS.FLL”
装入FOXTOOLS.FLL库后,就可以开始使用该库中的Regfn()函数来注册要访问的Windows通信函数。Regfn()函数允许用户调用Windows.DLL中的函数。DLL允许输入下列数据类型:整型(I)、长整数(L)、浮点(F)、双精度(D)、字符串?,也允许返回上述数据类型。注册1个Windows.DLL函数和它的参数的函数格式为:
myfun=Regfn(Winfunction,Argtypes,Rtntype)
其中Winfunction是要访问的Windows.DLL函数名。Argtypes是必须传递给它的各参数类型代码,例如要传递给函数的参数类型为整型、整型、浮点型、字符型时,则Argtypes为“IIFC”;可使用引用方式或数值方式来传递参数,当使用引用传递参数时,参数类型前要放@标志,该参数被作为指向缓冲区的指针。Rtntype是该.DLL函数返回值的数据类型。如果注册成功,Regfn()函数返回1个数字型值给myfun;如果注册失败,则返回-1。
在用Regfn()注册Windows.DLL通信函数成功后,接下来的工作是用Callfn()函数调用它,以执行这个已注册的函数。调用格式如下:
myret=Callfn(myfun,pm1,,…)
其中myfun就是已注册函数的数值句柄,pm1、pm2等是要传递给Windows.DLL函数的各参数值,参数个数随访问的.DLL函数而变。各参数次序和类型必须严格按照.DLL函数规定的要求传递,否则将引起调用失败。如果Callfn()调用成功,变量myret的内容就是Windows.DLL函数的返回值,它带有Rtntype参数指定的数据类型。