CH438Q 接收数据中断问题 !

各位好:

    CH438Q在接收数据时,数据量大于112字节,在数据可用中断 和超时中断都会分别产生中断吗 ?产生中断的顺序是先可用中断 ,后超时中断吗 ?数据中只有一部分有用,应如何保存有用数据!

例:$GNGGA,064754.000,2236.9108,N,11403.2383,E,2,15,0.87,106.5,M,-2.2,M,0000,0000*69 $GPGSA,A,3,14,25,24,22,18,15,21,12,193,,,,1.59,0.87,1.34*34 $BDGSA,A,3,07,06,01,10,04,09,,,,,,,1.59,0.87,1.34*1B $GPGSV,3,1,11,18,78,077,44,22,56,330,46,193,48,160,39,50,46,122,39*4A $GPGSV,3,2,11,25,39,146,41,12,39,095,46,14,36,310,48,21,31,195,37*72 $GPGSV,3,3,11,24,28,036,47,31,18,228,13,15,12,075,40*43 $BDGSV,3,1,11,07,77,323,40,06,72,113,38,09,72,348,36,03,62,189,27*64 $BDGSV,3,2,11,10,59,251,21,01,51,128,37,02,44,241,,04,33,110,34*6D $BDGSV,3,3,11,05,23,255,,14,03,317,34,08,03,172,17*53 $GNRMC,064754.000,A,2236.9108,N,11403.2383,E,0.00,329.66,130214,,,D*74 $GPTXT,01,01,02,ANTSTATUS=OK*3B


其中只有 $GNRMC,064754.000,A,2236.9108,N,11403.2383,E,0.00,329.66,130214,,,D*74 数据有用,怎么保存啊 !

不会的。同一数据不会既进超时又进可用中断。


                                     

各位好:

    CH438Q在接收数据时,数据量大于112字节,在数据可用中断 和超时中断都会分别产生中断吗 ?产生中断的顺序是先可用中断 ,后超时中断吗 ?数据中只有一部分有用,应如何保存有用数据!

例:$GNGGA,064754.000,2236.9108,N,11403.2383,E,2,15,0.87,106.5,M,-2.2,M,0000,0000*69 $GPGSA,A,3,14,25,24,22,18,15,21,12,193,,,,1.59,0.87,1.34*34 $BDGSA,A,3,07,06,01,10,04,09,,,,,,,1.59,0.87,1.34*1B $GPGSV,3,1,11,18,78,077,44,22,56,330,46,193,48,160,39,50,46,122,39*4A $GPGSV,3,2,11,25,39,146,41,12,39,095,46,14,36,310,48,21,31,195,37*72 $GPGSV,3,3,11,24,28,036,47,31,18,228,13,15,12,075,40*43 $BDGSV,3,1,11,07,77,323,40,06,72,113,38,09,72,348,36,03,62,189,27*64 $BDGSV,3,2,11,10,59,251,21,01,51,128,37,02,44,241,,04,33,110,34*6D $BDGSV,3,3,11,05,23,255,,14,03,317,34,08,03,172,17*53 $GNRMC,064754.000,A,2236.9108,N,11403.2383,E,0.00,329.66,130214,,,D*74 $GPTXT,01,01,02,ANTSTATUS=OK*3B


其中只有 $GNRMC,064754.000,A,2236.9108,N,11403.2383,E,0.00,329.66,130214,,,D*74 数据有用,怎么保存啊 !

           

数据长度达到FIFO触发点则产生可用数据中断,剩余数据长度达不到触发点时产生超时中断,当单次接收数据长度大于112字节而小于224时,会先产生可用中断,然后产生超时中断。所有数据都要从CH438 读出,然后判断哪些有用再保存。


"当单次接收数据长度大于112字节而小于224时"  怎么理解 ? 当接收的总数据长度为279时,在可用中断 和超时中断如何 处理 ,

才能保存所用数据 !能写个例程吗 ?谢谢支持!


                           

"当单次接收数据长度大于112字节而小于224时"  怎么理解 ? 当接收的总数据长度为279时,在可用中断 和超时中断如何 处理 ,

才能保存所用数据 !能写个例程吗 ?谢谢支持!

                       

您好,如果是279,应该会产生2次可用数据中断,一次超时中断,注意每次产生可用中断的时候及时去读取数据,防止FIFO溢出;产生可用数据中断的时候,可按FIFO触发点长度读取数据,超时中断则每次都判断是否还有数据,一直将数据读完。


我测试只要发送的字节数少于设定的触发值,触发中断读取的IIR表示是超时中断


只有登录才能回复,可以选择微信账号登录