ms-450波峰焊参数怎么设定保证的设定条件板得质量

郑州组合式选择性波峰焊东方誉德制造-供应郑州组合式选择性波峰焊东方誉德制造-一步电子网
找产品-上一步电子网!
一步微信公众号
一步采购热线:
您当前位置: &
& 供应郑州组合式选择性波峰焊东方誉德制造
您是要采购郑州组合式选择性波峰焊东方誉德制造吗?,我会尽快联系你!让供应商主动找你。
注册会员1年
品牌:DFYD
型号:SelFlux-450
所在地:广东-深圳
联系方式:一步采购热线:
发布日期: 13:14:20 有效日期至 13:14:20
联系我时请告诉我是"一步电子网"看到的信息,会有优惠哦!谢谢
扫一扫, 手机浏览
产品名称:
郑州组合式选择性波峰焊东方誉德制造
200000元/台
所属类别:
SelFlux-450
郑州组合式选择性波峰焊东方誉德制造
SelFlux-450
正常功率/启动功率
0.2KW/1.0KW
机器外型尺寸
1200(L)*1200(W)*1400(H)
1PH 220V 50HZ/60HZ
+ / - 0.05 mm
最少PCB尺寸
L60mm W60mm
最大PCB尺寸
L600mm W450mm
200MM-3000MM/Min
运输宽度调整
高耐腐性材料
清洗罐容量
SelHeat-450
正常/启动功率
2-5 KW/9KW
1200(L)*1200(W)*1400(H)
1PH 220V 50HZ/60HZ
最少PCB尺寸
最大PCB尺寸
W600 x L450
200MM-3000MM/Min
运输宽度调整
2kw/个,总4KW
25----300度
PLC+触摸屏
SelPot-450
正常功率/启动功率
1200(L)*1200(W)*1400(H)
1PH 220V 50HZ /60HZ
+ / - 0.05 mm
最少PCB尺寸
最大PCB尺寸
W600 x L450
200MM-3000MM/Min
运输宽度调整
锡炉容锡量
温度控制方式
35 Minutes
2mm ----8mm
可控客户要求定制
N2控制温度范围
运动控制系统
自动下板机
产品名称:郑州组合式选择性波峰焊东方誉德制造
*咨询详情:产品名称:
是什么价格?发货期几天?
深圳市东方誉德科技有限公司
所在地: -
地址:深圳市宝安区沙井街道步涌大田路41号
联系人:蒋海艳(业务经理)
手机:一步采购热线:因产品信息已过期,所以显示一步电子网的采购服务热线!我们将为您寻找更多的供应商!
联系我时请告诉我是"一步电子网"看到的信息,会有优惠哦!谢谢
公司相关产品
供应成都离线式选择性波峰焊经济型/东方誉德科技制造
供应潜江切脚机深圳市东方誉德科技生产制造
免责声明:以上产品信息是由深圳市东方誉德科技有限公司发布,一步电子网仅列示上述信息,不担保该信息的准确性,完整性和及时性,也不承担您发生交易带来的任何损害,交易前请慎重考虑。一步电子网保留全部或部分删除上述报告的权利。风险防范建议:为保障您的利益,建议优先加入。请不要随意给陌生人汇款,以免上当受骗!。
联系人:蒋海艳
经营模式:生产型
所在地区: -
企业类别:个体经营
一步电子网推荐相关产品君,已阅读到文档的结尾了呢~~
波峰焊温度曲线测量方法及参数..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
波峰焊温度曲线测量方法及参数控制标准[1]
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口TC35开发板 TC35i开发板 MC35开发板 gsm单片机开发板 学习板 实验板
西门子 Siemens TC35/TC35i GSM 开发板
&&&&笔者文章刊登于2008年10月《无线电》杂志“GSM模块――实现远程控制的新锐 ”一文,文章中我们介绍了一些常用的GSM模块,其中使用最为广泛的是西门子的TC35模块,因此,我们在2008年推出了“西门子 Siemens TC35/TC35i GSM 开发板”,自投放市场以来,受到了广大用户的好评,品质、质量、做工、资料属于一流,我们成功开发了短信控制继电器的源程序代码,使用C语言平台,使用51单片机来收发短信,方便了很多客户进行二次开发,也有不少客户在我们开发板的平台上快速、高效地完成了二次开发,做了一系列的GSM控制产品。现在,我们根据用户的反馈情况与建议,将硬件与设计的软件做了相应的完善,推出了最新款V1.3版,修正了之前的一些BUG,更加方便了广大客户的使用与开发,为了答谢广大新老客户,对于新版的价格还是和以前一样,不加价,但我们给用户提供了更好、更优的产品,希望大家喜欢。有很多用户经常会咨询我们TC35、TC35I、MC35、MC35I的区别,MC35系列的模块,主要是支持GPRS,MC35I比MC35的速度要快,而TC35和TC35I的区别在于外形,体积,电压都不同,有一些指令也不同,经常我们实际比对测试,TC35I的功耗比TC35要小一些,其它没有太多的区别,当然用户最关心的还是价格的问题,TC35I比TC35要贵不少,如果用户用来做一些短信和语音方面的功能,那完全可以使用TC35模块,我们可以提供稳定的货源,对于MC35和TC35,如果你一定要用到GRPS功能,那只能选择MC35系列模块,MC35I比MC35的速度要快,但价格要高一些。对于使用TC35、TC35I、MC35、MC35I的模块,都可以直接在我们的开发板上使用,管脚都是完全兼容的,我们也经过实测。
西门子 Siemens TC35/TC35i GSM 开发板 目前最新已更新到V1.3版
这是2008年底 西门子 Siemens TC35/TC35i GSM 开发板
这是2008年 西门子 Siemens TC35/TC35i GSM 开发板 老款 V1.0版
套装清单:――售价:450元/套 (目前最新硬件版本为V1.3,硬件升级后,价格不变)
&&&&TC35 GSM开发板:1块 (板上带有Siemens 西门子TC35模块,如需将标配更换成TC35i,需要补差价,请先电话和我们联系)
&&&&外接电源:1个
&&&&RS232串口线:1条
&&&&配套光盘:1份
&&&&GSM 专用天线:1个
&&&&TC35 专用天线转接线:1个
光盘附送相关资料:
&&&&AT指令集;SIEMENS_TC3x接口描述;Siemens TC35i数据手册
&&& TC35外围电路图及开发板电路原理图
&&&&TC35测试程序(PC机端程序)
&&&&TC35通过电脑发短信的实例程序(含VB源程序代码)
&&&&TC35通过单片机收发短信和控制继电器例子程序(含Keil C源程序代码) ――本公司全新力作,国内首创!
&&&&串口调试助手软件
&&&&STC芯片烧写软件
注意:该开发板可适用于TC35/TC35i/MC35/MC35i 模块,我们下面的介绍以TC35模块为例。
新款V1.3版与V1.2版本的区别在于:
&&&&调整了SW开机按钮于PCB上的位置,操作更顺手。
&&&&增加了单片机40PIN扩展口和单片机之间的间距,连接杜邦线更方便。
&&&&日 更新:我们为TC35开发板专门编写了GSM串口调试助手软件,调试AT指令,测试模块工作更为方便、快捷,功能强大。
V1.2版与V1.1版本的区别在于:
&&&&开发板四周增加螺丝定位孔,方便板子的固定。
&&&&开发板PCB板上增加天线定位孔,方便GSM天线直接固定在板子上,而不需要外拖天线。
&&&&新增开机按键,如果是PC机和TC35/TC35I模块进行通信,按一下按键,就可以实现模块的开机操作。
&&&&PCB进行了重新布线,完善了电源电路,稳定性更好,解决了上一版中的跳线BUG,方便实现三种通信跳线方式:PC与TC35/TC35I模块通信;PC与单片机通信;单片机与TC35/TC35I模块通信。板上的STC89C51单片机芯片可以通过串口完成ISP下载程序,无需额外的编程器。
&&&&开发板四周增加螺丝定位孔,方便板子的固定。
V1.1版与V1.0版本的区别在于:
&&&&在PCB走线方面做了修改,更正了PCB板SIM卡座与TC35模块之间的连接走线,解决了打孔所产生的一些问题。
这是我们在2008年10期《无线电》杂志上刊登的TC35模块介绍文章,大家也可以直接翻阅《无线电》杂志。
这是我们在2009年3期《无线电》杂志上刊登的西门子TC35开发板介绍文章,大家也可以直接翻阅《电子制作》杂志。
&&&&这是我们的“西门子 Siemens TC35/TC35i GSM 开发板”的操作演示视频录像,大家可以点击下载视频文件进行观看,视频中我们介绍了学习板的硬件和软件资料的情况以及初次使用的应用实例。注意,为了达到最好的显示效果,请全屏播放进行观看
--&&下载高品质视频文件
点击上面窗口进行在线播放,双击进行全屏观看
&&&& 西门子GSM模块 (TC35/TC35i/MC35/MC35i) 开发(评估)板是采用51单片机+TC35(GSM)为核心部件综合实验板。单片机采用STC89C51系列MCU,最高工作速度可达90MHz,片内FLASH程序存储器和8K左右的片内EEROM,多达36个通用I/O口。通过RS232实现ISP编程;
TC35(TC35i/MC35/MC35i)无线GSM/GPRS通信模块, 集成了标准的RS232接口以及SIM卡,可以在PC机上用AT命令通过串口对它进行设置。这使它成为在声音和数据通讯上通用的一个GSM/GPRS双频终端产品。 你可以快速的把它应用到产品开发上,同时它也可以作为产品的一个组成部分和产品结合在一起。在无线短信工业控制、远程通讯,现场监控等诸多无线通讯领域开发板将会给您的工作带来极大的便利.
&&&&该板方便用户实验、开发,根据用户的设计思维自由组合很快将思想变为产品,无论用户有无GSM方面的知识累积,该板都是良好助手。
硬件说明:
&&&&STC89Cxx,最高频率可达90MHz,片内4K以上FLASH程序存储器,8K左右的片内EEROM ,512B-1208B片内RAM,36个IO口。
&&&&TC35模块,集成了标准的RS232接口以及SIM卡。
&&&&1个LED指示灯:一个电源指示。
&&&&LMV电源IC。
&&&&ISP接口(用于程序下载、串口监视)。
&&&&RS232接口ISP;支持串口调试
&&&&12V直流电源输入,带电源指示灯
&&&&8路LED发光管指示
&&&&板载话筒、听筒接口,接上话筒、听筒后可以实现语音通话功能。
&&&&板载数字式温度传感器DS18B20专用接口,用户可以通过编程实现温度值的无线传输应用。
&&&&16通道开关量输出,其中8路接继电器控制输出,另8路TTL电平输出可供用户扩展。 (继电器控制负载:250V/10A)
&&&&TC35模块串口通信模式可以选择:可以分别与单片机进行串口通信,或者模块与PC机电脑完成串口通信。
实验说明:
&&&&◆ 短信收发实验。
&&&&◆ 话音呼叫实验。
&&&&◆ AT指令实验。
GSM串口调试助手软件 日更新发布
这是我们为TC35开发板专门编写了GSM串口调试助手软件,调试AT指令,测试模块工作更为方便、快捷,功能强大。
大家可以从窗体中看到上半部分为知名的串口调试助手软件全部功能,下面我们专门编写了GSM调试功能,同时支持SIM300 GRPS模块的调试。
TC35模块通过电脑联机,DEMO程序。
这是模块DEMO测试程序,我们可以用来读取模块预存的各种出厂信息,以及发送中文短信的实例应用。 直接点击图片放大观看。
这是模块DEMO测试程序,我们可以用来读取模块预存的各种出厂信息,以及发送英文短信的实例应用。 直接点击图片放大观看。
另一款TC35模块测试程序,这个程序可以完成拨号操作,同时实时显示模块操作的各条AT指令,上图为连接模块初始化成功的反馈信息 “OK”。
另一款短信发送接收软件。
8路LED发光管指示
与PC电脑连接的RS232串口
8路继电器控制输出
8路继电器输出接线柱,每路分别3个接线孔,分别为:公共端、常开端、常闭端。
手机SIM卡座
打开卡座,插入GSM手机SIM卡即可。
&&&&下面我们一起来看一下开发板提供的“TC35通过单片机收发短信和控制继电器例子程序”。
&&& 先来看一下我们的“西门子 Siemens TC35 GSM 开发板”的短信控制指令介绍与使用方法:
&&&&1. 给开发板供上12v直流电源后,板子上LD1点亮,表明开发板已经正常上电。
2. 此时会看到LD2一闪一秒,亮灭间隔时间相同,此状态表明TC35正处于搜寻网络状态。大概一分钟以后(不确定具体时间,看当时所处环境的信号强度)。
3. 当LD2出现短灭常亮的状态时,表明TC35已经搜寻到网络信号,处于待机状态。
4. 此时可以通过手机发送指令通过TC35模块接收来实现对单片机的控制,进而实现对继电器的控制。
以下为具体指令介绍:
假如模块SIM卡上的手机号码为:
通过手机发送短信到;
指令如下:
1.打开继电器
发送open?(?代表选择第几个继电器,注意open是小写),如发送open1到目标号码,片刻后将会看到板子上的D2灯点亮,并听到继电器打开的声音,此时可以发现继电器1已经打开,此时手机将收到来自目标号码的自动回复,回复内容为:Operate Successfully!。此时表明此次操作已经成功。如果你发送的指令错误,手机将会收到来自目标手机的短信提醒,告诉你当前的操作失败,操作失败的短信回复内容为:Operate Failed,try again!此时你可以检查是否发送正确指令给模块,再次操作!(板子上一共有8路继电器,所以发送的指令如下open1,open2,open3,open4,open5,….open8,一次只能打开一个继电器,下一次操作不会影响前一次的操作)。
2.关闭继电器
发送shut?(?代表选择第几个继电器,注意shut是小写),如发送shut1到目标号码,如果先前继电器1是处于开启状态的话,则会看到如下结果,LD2灯熄灭,并会听到“咔嚓“声响表明继电器1已经关闭。如果先前继电器是处于关闭状态的话则不会有任何反应。一会儿以后手机将收到来自目标号码的自动回复,回复内容为:Operate Successfully!。此时表明此次操作已经成功。如果你发送的指令错误,手机将会收到来自目标手机的短信提醒,告诉你当前的操作失败,操作失败的短信回复内容为:Operate Failed,try again!过一会儿你可以检查是否发送正确指令给模块,再次操作!(板子上一共有8路继电器,所以发送的指令如下shut1,shut2,….shut8,一次只能打开一个继电器,下一次操作不会影响前一次的操作)。
3.扩展开关的开启与关闭
在板子的右边J4排针是扩展开关的接口,开启的方式同继电器的方式一样。唯一不同的open后面的指令,openA表示打开开关1,shutA表示关闭开关1。板子上共有八个开关,所以open或者shut后面操作对象的范围(A~H)。过一会儿手机将收到来自目标号码的自动回复,回复内容为:Operate Successfully!。此时表明此次操作已经成功。如果你发送的指令错误,手机将会收到来自目标手机的短信提醒,告诉你当前的操作失败,操作失败的短信回复内容为:Operate Failed,try again!此时你可以检查是否发送正确指令给模块,再次操作!
4.继电器,开关的全部打开和全部关闭
发送指令openO表示打开所有继电器和开关,shutS表示关闭所有继电器和开关。过一会儿手机将收到来自目标号码的自动回复,回复内容为:Operate Successfully!。此时表明此次操作已经成功。如果你发送的指令错误,手机将会收到来自目标手机的短信提醒,告诉你当前的操作失败,操作失败的短信回复内容为:Operate Failed,try again!此时你可以检查是否发送正确指令给模块,再次操作!
5. 状态查询
发送open?代表查询开关状态,如发送open?到开发板上SIM卡的号码,片刻之后,将会收到来自目标号码的短信:如:000
Operate Successfully!
的短信.其中1表示此路继电器处于开着的状态.0表示现在继电器处于关闭状态.
&&&&以下为部分实验演示图片:
首先,将我们的短信控制继电器的程序烧入STC89C51芯片后,插上12V外接电源,SIM卡找到网络信号成功注册后,此时会看到LD2一闪一秒,亮灭间隔时间相同,此状态表明TC35正处于搜寻网络状态。大概一分钟以后(不确定具体时间,看当时所处环境的信号强度)。下面,我们准备打开第一路继电器。
我们使用的是Nokia6300手机,编缉短信内容为:open1 , 发送到号码为的开发板,接着手机显示“正在发送短信”,发送成功后,手机显示“已发送至XXXXXXXX号码”,之后,开发板收到了短信指令,随即打开第一路继电器,并反馈控制成功的短信给手机操作者。
&&&&我们现在看到板子上的D2灯点亮,并听到继电器打开的声音,此时可以发现继电器1已经打开,此时手机将收到来自目标号码的自动回复,回复内容为:Operate Successfully!。此时表明此次操作已经成功。
&&&&我们现在来测试一下全开继电器的功能,编缉短信内容为:openO , 发送到号码为的开发板,发送成功后,手机显示“已发送至XXXXXXXX号码”,之后,开发板收到了短信指令,随即打开全部继电器,并反馈控制成功的短信给手机操作者。
&&&&我们现在来测试一下关闭第一路继电器的功能,编缉短信内容为:shut1 , 发送到号码为的开发板,发送成功后,手机显示“已发送至XXXXXXXX号码”,之后,开发板收到了短信指令,随即关闭第一路继电器,并反馈控制成功的短信给手机操作者。
&&&&这是我们给开发板上电时,通过串口调试助手软件看到的,TC35模块初始化时的各条指令。注意:+0 是浙江省杭州地区的移动短信服务中心号码,您给开发板使用不同地区的SIM卡,请在程序中设置正确的当地ISP移动电话服务商提供的短信中心号码。
&&&&这是收到来自手机短信后的指令情况,开发板做出控制继电器的动作后,反馈给手机用户“Operate Successfully!”的成功控制短信信息。
&&&&这是我们提供的“TC35通过单片机收发短信和控制继电器例子”源程序代码,使用Keil C环境编写,大部分语句都加了中文注释,让开发者很容易上手,缩短了二次开发的周期,提高了开发效率。
部分程序代码截图。
函数的定义与说明。
短信指令的识别与继电器的控制代码。
初始化TC35模块代码。
下面我们再来看一下V1.2版的精美照片,以及一些独特的细节设计:
&&&&这是V1.2版的 西门子 Siemens TC35/TC35i GSM 开发板 , 左边是GSM天线和天线连接线。
&&&&三种通信方式跳线:PC与单片机通信;PC与TC35/TC35I模块通信;单片机与TC35/TC35I模块通信。
&&&&如果要使用电脑来收发短信或进行语音呼叫实验,请将跳线设置成:PC与TC35/TC35I模块通信。
&&&&如果要给单片机芯片烧写程序,即完成ISP下载功能, 请将跳线设置成:PC与单片机通信。
&&&&如果要使用单片机来控制TC35/TC35I模块,请将跳线设置成:单片机与TC35/TC35I模块通信。
&&&&V1.2版中新增的模块开机按钮,方便用户上电时,进行手动开机。
&&&&V1.2版中新增的螺丝定位孔,位于PCB板四周,在模块附近新增了两个天线定位孔,以适合不同孔径的GSM天线安装。
&&&&一流的波峰焊生产加工工艺,焊点非常漂亮、整洁。
&&&&下面我们准备给开发板加装GSM天线,我们来一起看一下。
&&&&首先把天线连接线的一头与TC35/TC35I模块的天线口相连, 注意:该接口比较脆弱的,拔插时请千万小心,不可乱用力,一定要对准了再下压。
&&&& 将天线连接线的线头与TC35/TC35I模块的天线孔对准了,再压下去,听到“喀喳”一声,说明连接到位了,如果需要将其再取下,请务必小心,慢慢将线头拔出。
&&&&一头已连接好的天线连接线,另一头准备固定在开发板定位孔上。
&&&&取下天线头上的垫片和垫圈,准备将其固定在板子上。
&&&&将天线连接线穿过PCB板的过孔,然后将天线头固定在PCB板上。
&&&&最后,再将GSM天线拧上即可。
&&&&开发板的硬件版本号在PCB板上有标,如图所示为V1.2新版。
&&&&如果拆下天线时,可以将小红帽套上天线端子,以免灰尘进入,保护其接触良好。
批量现货供应的TC35开发板
-------------------------------------------------------------------------------------------------------------------------------
西门子 TC35i模块介绍
&&&&TC35i新版西门子工业GSM模块是一个支持中文短信息的工业级GSM模块,工作在EGSM900和GSM1800双频段,电源范围为直流3.3~4.8V ,电流消耗――休眠状态为3.5mA,空闲状态为25mA,发射状态为300mA(平均),2.5A峰值;可传输语音和数据信号, 功耗在EGSM900(4类)和GSM1800(1类)分别为2W和1W ,通过接口连接器和天线连接器分别连接SIM卡读卡器和天线。SIM电压为3V/1.8V,TC35i的数据接口(CMOS电平)通过AT命令可双向传输指令和数据,可选波特率为300b/s~115kb/s , 自动波特率为1.2kb/s~115kb/s。它支持Text和PDU格式的SMS(Short Message Service,短消息),可通过AT命令或关断信号实现重启和故障恢复,中文资料如下:
&&&&TC35i由供电模块(ASIC)、闪存、ZIF连接器、天线接口等6部分组成。作为TC35i的核心基带处理器主要处理GSM终端内的语音和数据信号,并涵盖了蜂窝射频设备中的所有模拟和数字功能。
TC35i硬件设计:
&&&&TC35i模块有40个引脚,通过一个ZIF(Zero Insertion Force,零阻力插座)连接器引出。这40个引脚可以划分为5类,即电源、数据输入/输出、SIM卡、音频接口和控制。
&&&&TC35i的第1~5引脚是正电源输入脚通常推荐值4.2V,第6~10引脚是电源地。11、12为充电引脚,可以外接锂电池,13为对外输出电压(共外电路使用),14为ACCU-TEMP接负温度系数的热敏电阻,用于锂电池充电保护控制。
&&&&15脚是启动脚IGT,系统加电后为使TC35i进入工作状态,必须给IGT加一个大于100ms的低脉冲,电平下降持续时间不可超过1ms。
&&&&16~23为数据输入/输出,分别为DSR0、RING0、RxD0、TxD0、CTS0、RTS0、DTR0 和DCD0。tc35i模块的数据输入/输出接口实际上是一个串行异步收发器,符合ITU-T RS232接口标准。它有固定的参数:8位数据位和1位停止位,无校验位,波特率在300bps~115kbps之间可选,默认9600。硬件握手信号用RTS0/CTS0,软件流量控制用XON/XOFF,CMOS电平,支持标准的AT命令集。
&&&&其中18脚RXD、19脚TXD为TTL的串口通讯脚,需要和单片机或者PC通讯。
&&&&TC35i使用外接式SIM卡, 24~29为SIM卡引脚,SIM卡同TC35i是这样连接的:SIM上的CCRST、CCIO、CCCL、CCVCC和CCGND通过SIM卡阅读器与TC35i的同名端直接相连,ZIF连接座的CCIN引脚用来检测SIM卡是否插好,如果连接正确,则CCIN引脚输出高电平,否则为低电平。
&&&&TC35i的第32脚SYNC引脚有两种工作模式,一种是指示发射状态时的功率增长情况,另一种是指示TC35i的工作状态,可用AT命令AT+SYNC进行切换,本模块使用的是后一种。当LED熄灭时,表明TC35i处于关闭或睡眠状态;当LED为600 ms亮/600ms熄时,表明SIM卡没有插入或TC35i正在进行网络登录;当LED为75 ms亮/3s熄时,表明TC35i已登录进网络,处于待机状态。
&&&&30、31、32脚为控制脚,其中30为RTC backup,31为Power down,32 为SYNC。
&&&&35~38为语音接口,35、36接扬声器放音。37、38可以直接接驻极体话筒来采集声音(37是话筒正端,39是话筒负端)
TC35I开发技巧:
&&&&模块的供电电压如果低于3.3V会自动关机。同时模块在在发射时,电流峰值可高达2A。同时在此电流峰值时,电源电压(送入模块的电压)下降值不能超过0.4V。所以该模块对电源的要求较高,电源的内阻+FFC联接线的电阻必需小于200mΩ。
&&&&单片机通过两根I/O口控制TC35的开关机、复位等,通过串口与TC35进行数据通信,通信速率为9600Kbps,采用8位异步通讯方式,1位起始位,8位数据位,1位停止位。
&&&&TC35模块输入输出的TTL正电平逻辑不是+5V,而是+2.9V,因此必要时加端口保护。
&&&&新版德国西门子工业级GSM模块TC35i套装 ,清单如下:
1、TC35i模块一个
2、SIM卡座一个
3、GSM天线转接线一根
4、GSM小天线一根
5、40芯专用排线及接插件一个
TC35i模块的详细英文PDF资料 &&
TC35I西门子工业GSM模块 250元一个
40芯0.5mm间距扁平排线3厘米长 5元一个
40PIN 间距0.5mm 翻盖式专用排线卡座 5元一个 主要用于连接TC35I与目标板的连接。
TC35I专用天线转接线 10元一根 村田头转成SMA接口,主要用于TC35I模块和GSM天线的连接。是每个西门子模块必备的产品.
GSM小天线(SMA接口) 10元一个
这是SIM卡座 5元一个
&&&&LM2941CS 7元一片 它是开关型可调高性能微波电路专用稳压芯片,上图中最左边的第一脚是电压调整端,提供1.28V的基准电压,可以通过外围两个电阻的分压比能灵活改变输出电压,第二脚是控制端,高电平时关闭电源模块,低电平时模块正常工作,第三脚是地,第四脚是电源输入端,第五脚是电压输出端,例如TC35理想工作电压是4.2V。
&&&&很多客户对TC35I不太熟悉,对如何调试无从下手,我们以TC35I试验板为例来简单说一下,首先将内正外负的12V直流电源接通试验板的插座中,测量LM2941CS的第5脚是否输出4.2V的直流电压?如果没有检查2941的第2脚是否接地?然后通过排线连接TC35I,插好手机卡并接好天线转接线和GSM天线,再通电测量TC35I的第1~5脚是否有4.2V电压?将TC35I的第16脚也就是单片机的P1.3脚对地短路一下,这时TC35I就能启动,等1分钟后,用其他电话拨打手机卡号,如果不能接通重点检查排线座和SIM卡的6根线是否有接触不良?如果能接通说明TC35I正常,如果直接用单片机调试是非常困难的,可以将TC35I的串口脱离单片机通过RS232电平转换后连接电脑的串口,先用我们开发的短信息收发专用软件() 进行测试,如果能正常工作再用串口调试助手软件()进行AT命令测试。最后用单片机调试。
以下是我们对TC35i模块进行维修中的照片,TC35和TC35i使用上基本上差不多,在外观形状上,TC35i比TC35略有不同。
取下TC35i模块的屏蔽罩
这是取下屏蔽罩后的样子,内部还有IC。
使用热风枪对BGA芯片进行焊接
使用热风枪对BGA芯片进行焊接
&&&&进行串口调试时,可以先发送AT,看看TC35I模块是否能回答AT OK,如果行说明串口部分硬件正常,如果不能回复,请顺着串口的两根PCB走线检查,看看4053的两根飞线是否连接正确?TC35I排线座上的两根串口线是否接触不良?如果TC35I和单片机的供电电压相同,可以去掉220欧姆的保护电阻。
&&&&还有AT命令比较复杂,不同生产日期的TC35I模块的AT指令可能有一些区别,请客户以实践为准耐心调试,一个复杂的系统完全指望别人是不可能成功的,请务必保持一定的心理准备。
下面我们列举一些常用的AT指令:
控制端发送的AT指令
指令的功能
来电话时有信号输出
串口输出:RING
读取全部未读过的SMS消息
列出已有的短信息
读取全部SMS消息
读取第X条短消息
删除第X条短消息
读取TC35I的序列号
显示短信息中心地址
写短信息并存储。
注意需要最后的分号
AT+CNMI=1,1,2
设置收到短消息提示
例如:+CMTI:“SM”,4 4表示手机内短消息数量
&&&&这是用串口调试助手成功发送的中文短信息完整过程,短信中心号码: 短信接收方号码: 短信内容:晚上好123 红色表示发送的内容,蓝色表示接收到的数据,黑色表示备注。
AT(回车)通讯握手
AT+CMGF=0 设置为PDU模式,因为要发送中文汉字
AT+CMGS=6 发送短消息的字节数
& 表示可以接收数据
<font color="#ffF008A90C665A4E0A597D 包含短信中心、接收方手机号码和短信内容的数据
1A 发送结束标志,一定要十六进制大写模式,不是ASIC码!(可以在串口调试助手中勾选十六进制选项)只有最后发送1A十六进制码后短信才会被成功发出!
OK 表示第45条短信发送成功
下面分析这条信息:
08――表示短消息中心地址长度;
91――表示短消息中心号码类型;
68----中国代码
F0――表示短消息房层中心号码;0
0103――表示发送短消息的编码方式;
0D――表示目的地址长度;
91――表示目的地址类型;
F9――表示接收短消息的手机号码为(前面68是固定的,后面的手机号码每2位掉换一下位置,最后一位前面加入F)
3208――表示发送中文字符方式;
0C――表示短消息长度;
665A4E0A597D――表示发送中文字符的UNICODE码
汉字的中文内码: 665A{晚} 4E0A{上} 597D{好} 32{2} 0033{3}。
单片机实现短信自动发送
进行短信发送的前提是短信内容的正确编码。经过以上对短信发送过程的分析,可以通过单片机对其进行实现。下面是实现程序例程:
/*-------------------------------------------------------------------------
函数名:PDU_SMS()
功能 :发送短信
参数说明:SMS_Center为短信中心号码 11位
SMS_Telenum为短信接收方的号码 11位
SMS_Context为短信的内容
--------------------------------------------------------------------------------*/
int PDU_SMS(char *SMS_Center, char *SMS_Telenum,
char *SMS_Context,char is_GB)
unsigned char len,
char lens[3];
for(i=0;i&300;i++) PDU_Code[i]=PDU_t[i];
/*----------设置短信中心号码--------------*/
for (i = 0, j = 0; i & strlen(SMS_Center) / 2; i++)
PDU_Code[6+(j++)] = SMS_Center[2 *i + 1];
PDU_Code[6+(j++)] = SMS_Center[2 *i];
PDU_Code[6+j++] = 'F'; //在最后补上的F
PDU_Code[6+j] = SMS_Center[strlen(SMS_Center) - 1];
/*---------------------------------------------*/
/*----------设置接收号码--------------*/
for (i = 0, j = 0; i & strlen(SMS_Telenum) / 2; i++)
PDU_Code[26+(j++)] = SMS_Telenum[2 *i + 1];
PDU_Code[26+(j++)] = SMS_Telenum[2 *i];
PDU_Code[26+j++] = 'F';
PDU_Code[26+j] = SMS_Telenum[strlen(SMS_Telenum) - 1];
/*---------------------------------------------*/
/*----------设置短信内容长度--------------*/
if(is_GB==0)
len = strlen(SMS_Context) *2;
len = strlen(SMS_Context);
PDU_Code[44] = (len && 4) & 9 ? (len && 4) + 55: (len && 4) + 48;
PDU_Code[45] = (len &0x0f) & 9 ? (len &0x0f) + 55: (len &0x0f) + 48;
/*---------------------------------------------*/
/*----------编码短信内容--------------*/
if(is_GB==0)//如果不是GB码,短信内容为ascii码字符串
for (i = 0,j=0; i&strlen(SMS_Context);i++)
szzh16(SMS_Context[j++],lens);
PDU_Code[46+i*4] = '0';
PDU_Code[46+i*4+1] = '0';
PDU_Code[46+i*4+2] = lens[0];
PDU_Code[46+i*4+3] = lens[1];
PDU_Code[46+i*4] = 0x1a;
PDU_Code[46+i*4+1] = 0
//短信内容为GB码,如果要使手机能够显示,改到UNICODE编码
for (i = 0,j=0; i&strlen(SMS_Context);i++)
szzh16((int)SMS_Context[j++],lens);
PDU_Code[46+i*2] = lens[0];
PDU_Code[46+i*2+1] = lens[1];
PDU_Code[46+i*2] = 0x1a;
PDU_Code[46+i*2+1] = 0
/*---------------------------------------------*/
if(PDU_HandShake())
//LCD_PutChn(5,96,&SS...&);
//if(is_GB)
PDU_EnablePDU();
if(is_GB==0)
PDU_SetLength(Strlen(SMS_Context)*2);
PDU_SetLength(Strlen(SMS_Context));
PDU_Send(PDU_Code);
//LCD_PutEng(5,96,&SS&);
for(i=0;i&25;i++)
delay(20000);
sbuf[counter]=0;
//LCD_PutNum16(5,96,time);
counter=0;
//判断是否发送成功,如果不成功继续发送,最多4次,如仍不成功,返回0
while(strpos(sbuf+strlen(sbuf)-20,'G')==-1&&time&4);
if(strpos(sbuf+strlen(sbuf)-20,'G')==-1)
return 1; //成功的话返回0
//LCD_PutEng(5,96,&LL&);
sbuf[counter]=0;
//LCD_PutEng(0,0,sbuf);
counter=0;
以上程序成功实现短信的发送,其中的一些函数限于篇幅可自行实现。
(6)单片机对短信的读取与解码
单片机可以通过AT指令对短信猫中的短信进行读取,并对读入的短信数据进行分析与解码。
读出的短信格式与发送时的短信编码大致是相同的。下面给出相应的程序例程,读者可以在自行实验中对照验证。
1. 读取某一条短信,并将其进行显示
/*-------------------------------------------------------
函数名:LAD_SMS()(short for &Load And Display the Short MessageS&)
功能:用户函数,读取第n条短信,并在LCD的(x,y)位置显示出来
----------------------------------------------------------*/
unsigned char LAD_SMS(unsigned char n,unsigned char x,unsigned char y)
unsigned char i,len,t;
char temp[5];
char temp1[3];
//IN_Draw_BlankorBlackRect(0,20,30,72,0);
szzh10(n,temp1);
//将n转为相应的字符串,如n=21,则字符串为&21&,用以与AT指令拼接。
clear_sbuf();
counter=0;
send_s(&AT+CMGR=&);//AT+CMGR为读取短信的AT指令
send_s(temp1);//上面所得的字符串
send(0x0d);
send(0x0a);
for(i=0;i&10;i++) delay(10000); //等待读取完毕
sbuf[counter]=0; //在收到的数据末尾附加'\0'
temp[0]=sbuf[23];
temp[1]=sbuf[24];
temp[2]=sbuf[25];
temp[3]=0;
if(sbuf[25]!=0x0d) t++;
for(i=0;i&strlen(temp);i++) if(temp[i]==0x0d) temp[i]=0;
len=atoi(temp); //获取收到的短信内容长度
//LCD_PutEng(23,76,&(SM:&);
//LCD_PutNum16(27,76,n);
//LCD_PutEng(29,76,&)&);
if(len==0)
//LCD_PutEng(5,96,&EMP&);
//LCD_PutChn(x,y,&&短信空&);
delay(50000);
if(len&90)
//LCD_PutEng(5,96,&MTL&);
//LCD_PutChn(x,y,&&短信太长&);
delay(50000);
for(i=0;i&i++)
temp[0]=sbuf[t+2*i];
temp[1]=sbuf[t+2*i+1];
temp[2]=0;
sbuf[i]=_hex_(temp);
//收到的短信内容是内存方式的显示表示,转为十六进制数
sbuf[i]=0;
Analysis_Pro();//解码后的内容在sbuf中,此函数对其进行显示输出
//LCD_PutEng(x,y,inf_bw.Date);
//LCD_PutEng(x,y,sbuf+29);
delay(50000);
clear_sbuf();
counter=0;
2. 检测新短信
/*-------------------------------------------------------
函数名:Check_New()
功能:用户函数,检测有无新的短信,如果有返回1,否则返回0
----------------------------------------------------------*/
unsigned char Check_New()
send_s(&AT+CMGL=0&); //AT+CMGL=0为读取新短信的AT指令
send(0x0d);
send(0x0a); //发送回车
delay(10000); //等待接收完毕
if(sbuf[12]=='O') return 0
if(sbuf[12]=='+')
for(i=18;i&23;i++)
if(sbuf[i]==',') sbuf[i]=0;
return atoi(sbuf+19); //返回新短信的位置
3. 删除某条短信
/*-------------------------------------------------------
函数名:Delete()
功能:用户函数,删除第n条短信
----------------------------------------------------------*/
unsigned char Delete(unsigned char n)
char t[10];
char t1[5];
strcpy(t,&AT+CMGD=&); //AT+CMGD为删除短信的AT指令
szzh10(n,t1);
strcpy(t+8,t1);
while(Send_AT_CMD(t)!=1);
//LCD_PutEng(5,96,&SM&);
//LCD_PutNum16(7,96,n);
//LCD_PutEng(10,96,&De&);
delay(60000);
TC35的控制主要包含如下几类指令:
  (1)初始化指令
  设置短消息发送格式AT+CMGF=1&CR&,设置1代表PDU模式,&CR&是回车符号,也就是0x0d,指令正确则模块返回&CRLF&OK&CRLF&,&CRLF&是回车换行符号。
  (2)设置/读取短消息中心
  短消息中心号码由移动运营商提供。
  设置短消息中心的指令格式为:
  AT+CSCA=″+0″(短消息中心)&CR&
  设置正确则模块返回&CRLF&OK&CRLF&。
  读取短消息服务中心则使用命令:
AT+CSCA=?&CR&
  TC35模块应该返回:
&CRLF&+CSCA:″0″&CRLF&。
  (3)设置短消息到达自动提示
  设置短消息到达自动提示的指令格式为:
AT+CNMI=1,1,0,0,1&CR&
  设置正确则TC35模块返回:
&CRLF&OK&CRLF&。
  设置此命令可使模块在短消息到达后向串口发送指令:
&CRLF&+CMTI:″SM″,INDEX(信息存储位置)&CRLF&。
  通过TC35发送短消息的方法为:
  PC上的控制软件按照PDU的格式发送和接收数据,短消息的内容可以是中文或者其他字符。在PDU模式,如果发送短消息,则首先发送短消息数据的长度:
AT+CMGS=&length&&CR&
  等待TC35模块返回ASCII字符&&&,则可以将PDU数据输入,PDU数据以&Z&(也就是0x1a)作为结束符。短消息发送成功,模块返回:
&CRLF&OK&CRLF&
  通过TC35接收短消息的方法为:
  短消息到来后,串口上会接收到指令
&CRLF&+CMTI:″SM″,INDEX(信息存储位置)&CRLF&
  PC上的控制软件通过读取PDU数据的AT命令
AT+CMGR=INDEX&CRLF&
  将TC35模块中PDU格式的短消息内容读出。如果用+CMGL代替+CMGR,则可一次性读出全部短消息。
  通过TC35删除短消息的方法为:
  PC上的控制软件收到一条短消息并处理后,需要将其在SIM卡上删除,以防止SIM卡饱和。删除短消息的指令为:
AT+CMGD=INDEX&CR&
  删除后模块返回
&CRLF&OK&CRLF&
2.程序实例
  由于本文的宗旨在于讲解串口通信,因此,我们屏蔽图形用户界面的细节,制作一个简单的短信收发软件,它包含了控制短信终端的所有串口通信内容。实际上,一个理想的短信收发软件的界面应类似于Outlook或Foxmail,包含收件箱、发件箱、已发送短信箱等内容,但是这些东西都与我们要介绍的串口通信无关,因此,下面的软件界面虽&败絮其外&,但仍可称得上&金玉其中&:
  关于界面上控件的描述如下:
  EDITTEXT IDC_SMSCONTENT_EDIT,39,61,242,38,ES_AUTOHSCROLL
  PUSHBUTTON &发送&,IDC_SEND_BUTTON,316,80,45,18
  GROUPBOX &接收短消息&,IDC_STATIC,28,124,361,167
  LTEXT &对方手机号&,IDC_STATIC,41,35,42,11
  EDITTEXT IDC_PHONENUM_EDIT,88,30,192,17,ES_AUTOHSCROLL
  PUSHBUTTON &清除&,IDC_CLEAR_BUTTON,316,30,45,18
  GROUPBOX &发送短消息&,IDC_STATIC,29,19,361,95
  LISTBOX IDC_RECVSMS_LIST,43,137,331,127,LBS_SORT |
  LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
  PUSHBUTTON &接收&,IDC_RECV_BUTTON,77,269,55,16
  PUSHBUTTON &清空&,IDC_DELETEALL_BUTTON,273,268,45,14
  对话框类的消息映射为:
BEGIN_MESSAGE_MAP(CSMSControlDlg, CDialog)
//{{AFX_MSG_MAP(CSMSControlDlg)
  ON_WM_SYSCOMMAND()
  ON_WM_PAINT()
  ON_WM_QUERYDRAGICON()
  ON_BN_CLICKED(IDC_CLEAR_BUTTON, OnClearButton)
  ON_BN_CLICKED(IDC_SEND_BUTTON, OnSendButton)
  ON_BN_CLICKED(IDC_RECV_BUTTON, OnRecvButton)
  ON_BN_CLICKED(IDC_DELETEALL_BUTTON, OnDeleteallButton)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
 下面是对本例程软件的主要数据结构和核心函数的介绍:
  数据结构
// 用户信息编码方式
#define GSM_7BIT 0
#define GSM_8BIT 4
#define GSM_UCS2 8
// 短消息参数结构,编码/解码共用
// 其中,字符串以0结尾
typedef struct
  char SCA[16]; // 短消息服务中心号码(SMSC地址)
  char TPA[16]; // 目标号码或回复号码(TP-DA或TP-RA)
  char TP_PID; // 用户信息协议标识(TP-PID)
  char TP_DCS; // 用户信息编码方式(TP-DCS)
  char TP_SCTS[16]; // 服务时间戳字符串(TP_SCTS), 接收时用到
  char TP_UD[161]; // 原始用户信息(编码前或解码后的TP-UD)
  // 短消息序号,在读取时用到
} SM_PARAM;
  发送短消息
  发送按钮对应的函数为CSMSControlDlg::OnSendButton,它读取用户输出并根据目标电话号码和短信息内容形成SM_PARAM(源PDU参数)的内容,接着进行发送:
void CSMSControlDlg::OnSendButton()
  // TODO: Add your control notification handler code here
  //获得用户输入
  CString desPhoneN
  CString smsC
  GetDlgItemText(IDC_PHONENUM_EDIT,desPhoneNum);
  GetDlgItemText(IDC_SMSCONTENT_EDIT,smsContent);
 //填充SM_PARAM结构体内容
  SM_PARAM smP
  smParam = CreateSMPARAMStruct(desPhoneNum,smsContent);
 //发送短信息
  gsmSendMessage(smParam);
  其中调用的gsmSendMessage函数体现了串口通信的核心内容,它按照第1节阐述的GSM模块发送短消息的串口控制流程进行短信的发送:
BOOL gsmSendMessage(const SM_PARAM *pSrc // pSrc: 源PDU参数指针)
  int nPduL // PDU串长度
  unsigned char nSmscL // SMSC串长度
  int nL // 串口收到的数据长度
  char cmd[16]; // 命令串
  char pdu[512]; // PDU串
                                                        char ans[128]; // 应答串
 nPduLength = gsmEncodePdu(pSrc, pdu); // 根据PDU参数,编码PDU串
  strcat(pdu, &\x01a&); // 以Ctrl-Z结束
 gsmString2Bytes(pdu, &nSmscLength, 2); // 取PDU串中的SMSC信息长度
  nSmscLength++; // 加上长度字节本身
 // 命令中的长度,不包括SMSC信息长度,以数据字节计
  sprintf(cmd, &AT+CMGS=%d\r&, nPduLength / 2-nSmscLength); // 生成命令
 WriteComm(cmd, strlen(cmd)); // 先输出命令串
 nLength = ReadComm(ans, 128); // 读应答数据
  // 根据能否找到&\r\n& &决定成功与否
  if (nLength == 4 && strncmp(ans, &\r\n& &, 4) == 0)
   WriteComm(pdu, strlen(pdu)); // 得到肯定回答,继续输出PDU串
  nLength = ReadComm(ans, 128); // 读应答数据
                                                                                     
   // 根据能否找到&+CMS ERROR&决定成功与否
   if (nLength & 0 && strncmp(ans, &+CMS ERROR&, 10) != 0)
    return TRUE;
  return FALSE;
  读取短消息
  点击&接收&按钮会通过gsmReadMessage函数的调用获得所有短消息,最后在列表控件中显示所有短信:
void CSMSControlDlg::OnRecvButton()
  // TODO: Add your control notification handler code here
  SM_PARAM smParam[100];//短信缓冲区
  int smsN//短信条数
  smsNum = gsmReadMessage(smParam);//读取短信
 //显示短信
  for(int i=0;i&smsNi++)
   m_recvlist.AddString(CString(smsNum[i].TPA)+smsNum[i].TP_UD);
   其中调用的gsmReadMessage函数完成最核心的短信接收功能,它按照第1节阐述的GSM模块接收短消息的串口控制流程进行短信的接收:
// 参数:pMsg 短消息缓冲区,必须足够大
// 返回:短消息条数
int gsmReadMessage(SM_PARAM* pMsg)
  int nL // 串口收到的数据长度
  int nM // 短消息计数值
  char* // 内部用的数据指针
  char cmd[16]; // 命令串
  char ans[1024]; // 应答串
 nMsg = 0;
 sprintf(cmd, &AT+CMGL\r&); // 生成命令,用+CMGL可一次性读出全部短消息
                  
  WriteComm(cmd, strlen(cmd)); // 输出命令串
  nLength = ReadComm(ans, 1024); // 读应答数据
  // 根据能否找到&+CMS ERROR&决定成功与否
  if(nLength & 0 && strncmp(ans, &+CMS ERROR&, 10) != 0)
   // 循环读取每一条短消息, 以&+CMGL:&开头
   while((ptr = strstr(ptr, &+CMGL:&)) != NULL)
    ptr += 6; // 跳过&+CMGL:&
    sscanf(ptr, &%d&, &pMsg-&index); // 读取序号
                   
    ptr = strstr(ptr, &\r\n&); // 找下一行
    ptr += 2; // 跳过&\r\n&
   gsmDecodePdu(ptr, pMsg); // PDU串解码
    pMsg++; // 准备读下一条短消息
    nMsg++; // 短消息计数加1
   return nM
删除短消息
  我们可以在读取完所有短信息后调用gsmDeleteMessage函数在GSM模块上删除那些已经被接收到PC上的短信息,它按照第1节阐述的GSM模块删除短消息的串口控制流程进行短信的删除:
// index: 短消息序号,从1开始
BOOL gsmDeleteMessage(const int index)
  int nL // 串口收到的数据长度
  char cmd[16]; // 命令串
  char ans[128]; // 应答串
 sprintf(cmd, &AT+CMGD=%d\r&, index); // 生成命令
 // 输出命令串
  WriteComm(cmd, strlen(cmd));
 // 读应答数据
  nLength = ReadComm(ans, 128);
 // 根据能否找到&+CMS ERROR&决定成功与否
  if (nLength & 0 && strncmp(ans, &+CMS ERROR&, 10) != 0)
   return TRUE;
  return FALSE;
  在PC控制软件的短信列表框中删除所有短消息的&清空&按钮函数为:
void CSMSControlDlg::OnDeleteallButton()
  // TODO: Add your control notification handler code here
  m_recvlist.ResetContent();
  设置/读/写串口
  在应用程序启动与退出及gsmSendMessage、gsmReadMessage和gsmDeleteMessage函数中广泛使用的串口相关函数用WIN32 API实现:
// 串口设备句柄
// 打开串口
// pPort: 串口名称或设备路径,可用&COM1&或&\\.\COM1&两种方式,建议用后者
// nBaudRate: 波特率
// nParity: 奇偶校验
// nByteSize: 数据字节宽度
// nStopBits: 停止位
BOOL OpenComm(const char *pPort, int nBaudRate, int nParity, int nByteSize, int
nStopBits)
  DCB // 串口控制块
  COMMTIMEOUTS timeouts =
   // 串口超时控制参数
   100, // 读字符间隔超时时间: 100 ms
   1, // 读操作时每字符的时间: 1 ms (n个字符总共为n ms)
   500, // 基本的(额外的)读超时时间: 500 ms
   1, // 写操作时每字符的时间: 1 ms (n个字符总共为n ms)
  }; // 基本的(额外的)写超时时间: 100 ms
 hComm = CreateFile(pPort, // 串口名称或设备路径
   GENERIC_READ | GENERIC_WRITE, // 读写方式
   0, // 共享方式:独占
   NULL, // 默认的安全描述符
   OPEN_EXISTING, // 创建方式
   0, // 不需设置文件属性
   NULL); // 不需参照模板文件
 if (hComm == INVALID_HANDLE_VALUE)
   return FALSE;
  // 打开串口失败
 GetCommState(hComm, &dcb); // 取DCB
  dcb.BaudRate = nBaudR
  dcb.ByteSize = nByteS
  dcb.Parity = nP
  dcb.StopBits = nStopB
 SetCommState(hComm, &dcb); // 设置DCB
  SetupComm(hComm, ); // 设置输入输出缓冲区大小
 SetCommTimeouts(hComm, &timeouts); // 设置超时
  return TRUE;
// 关闭串口
BOOL CloseComm()
  return CloseHandle(hComm);
// pData: 待写的数据缓冲区指针
// nLength: 待写的数据长度
void WriteComm(void *pData, int nLength)
  DWORD dwNumW // 串口发出的数据长度
  WriteFile(hComm, pData, (DWORD)nLength, &dwNumWrite, NULL);
// pData: 待读的数据缓冲区指针
// nLength: 待读的最大数据长度
// 返回: 实际读入的数据长度
int ReadComm(void *pData, int nLength)
  DWORD dwNumR // 串口收到的数据长度
  ReadFile(hComm, pData, (DWORD)nLength, &dwNumRead, NULL);
  return (int)dwNumR
  编/解码GSM短消息
  陷于本文的篇幅,这里只给出编解码函数的原型,具体请参看GSM标准及《通过串口收发短消息》一文。
// UCS2编码 返回: 目标编码串长度
int gsmEncodeUcs2(const char *pSrc, // 源字符串指针
  unsigned char *pDst, // pDst: 目标编码串指针
  int nSrcLength // nSrcLength: 源字符串长度
// UCS2解码 返回: 目标字符串长度
int gsmDecodeUcs2(const unsigned char *pSrc, //源编码串指针
char *pDst, // pDst: 目标字符串指针
int nSrcLength // nSrcLength: 源编码串长度
//可打印字符串转换为字节数据 返回: 目标数据长度
//如:&C8329BFD0E01& --& {0xC8, 0x32, 0x9B, 0xFD, 0x0E, 0x01}
int gsmString2Bytes(const char *pSrc, // pSrc: 源字符串指针
unsigned char *pDst, // pDst: 目标数据指针
int nSrcLength // nSrcLength: 源字符串长度
// 字节数据转换为可打印字符串 返回: 目标字符串长度
// 如:{0xC8, 0x32, 0x9B, 0xFD, 0x0E, 0x01} --& &C8329BFD0E01&
int gsmBytes2String(const unsigned char *pSrc, // pSrc: 源数据指针
char *pDst, // pDst: 目标字符串指针
int nSrcLength // nSrcLength: 源数据长度;
我们专注于智能家居控制系统,GPRS数据采集系统,物联网智能控制方向 晶控电子----让我们的生活更美好 品质更卓越 生活更智能
联系地址:浙江省杭州市北部软件园区乐富智汇园12栋6层
邮政编码:310011&Email:
电话总机:0
杭州晶控电子有限公司 版权所有
HANGZHOU KinCony ELECTRONICS CO.,LTD 网站备案:浙ICP备号

我要回帖

更多关于 波峰焊工程师招聘 的文章

 

随机推荐