GMS模块打电话,串口发送过来的数据转换成声音。

MU350有一个AT命令串口,还有一个声音的串口,当我ATD10086;的时候,另外一个串口就有很多数据过来,问题来了,这些数据怎么弄成声音?我找了一下自带的软件,没找到需要的(自带的软件打电话是有声音的)。我把模块串口发送过来的数据原封不动保存文件,改Mp3后缀,无法播放。要怎样才能播放?

2个回答

你这个有点难度哦!是要看手册的

你这时自己做模块还是买的现成的模块,若果是买的现成的模块的话,一般都给你带了这个了!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
GMS短信猫发送,GMS短信猫发送
GMS短信猫发送 解决了中文发送问题 把 bool unicode = false;这句话里的FLASE改成TRUE 如 bool unicode = true; 至不可以连续发送是因为 CommSetting.comm.Open();打开了 可最后没有关闭 在点击发送时 有调用了 CommSetting.comm.Open();方法 解决方法 可以在点击事件最后加个 CommSetting.comm.Close(); 也可以再导入窗体时CommSetting.comm.Open(); 要实现短信群发就自己去整理下里面的函数然后在最后加一个CommSetting.comm.Close(); 做循环就可以了 加到8分了 呵呵
对网络发送过来的串口数据的读取
我得知,收到的数据和上位机发送的数据,字节数长度uiWireLessRLenth确实是一样的。可是,为什么下面这个程序要经过这样的received_buf的转换呢? rnfor( i = 0; i < uiWireLessRLenth*2; ++i )rn rn if((i%2) == 0)rn rn received_buf[i/2] = atox(received_buf+i,2);rn #ifdef WIRELESS_DEBUGrn printf( "0x%02x ", received_buf[i/2] );rn #endifrn rn rn printf( "\n");rn for( i = 0; i < uiWireLessRLenth; ++i )rn rn if((i%2) == 0)rn rn received_buf[i/2] = atox(received_buf+i,2);rn #ifdef WIRELESS_DEBUGrn printf( "0x%02x ", received_buf[i/2] );rn #endifrn rn rnrn利用AT指令读取数据rnif(bSerExpectFlag==1)rn rn if(cFindString(received_bufer,received_buf,"IPDR:",uiserBrecieveLen))//收到正确数据包rn rn uiWireLessRLenth = 0;rn if(received_buf[10]!=',')//收到正确指令rn uiWireLessRLenth = (received_buf[9]-48)*10+received_buf[10]-48;rn elsern uiWireLessRLenth = received_buf[9]-48;rn if(uiWireLessRLenth!=0)rn rn if(uiWireLessRLenth<10)rn for(i=0;inextstate = My_Rcv_Pkt( my_sock ); //处理接收数据rn memset(received_bufer,0x00,sizeof(received_bufer));rn uiserBrecieveLen = 0;rn rn elsern my_sock->nextstate = DATA_RECIEVE; //收到数据长度超界rn
如何保存串口发送过来的数据?
要将下位机通过串口发送的数据保存到txt文件,因为串口数据是实时传送的,所以文件也是实时保存的,请问下该如何实现?
FPGA之串口发送模块
FPGA串口收发字符串之串口发送模块,有需要的同学可以下载!
数据转换成声音 请教
我是想这样,把任意的一些16进制的数据转换成声音,任意的声音格式都行。当然可能在数据中加上一些格式的信息。最近在网上找了一些资料,开始时看的是Mp3格式的,但比较复杂,现在看的是最简单的声音格式——midi格式,在网上看了一些信息,但是资料都不是很完整,所以不能够很好的了解。rn 我的问题是:rn 1、采用什么样的方式将16进制的数转换成声音比较方便;rn 2、有没有比较全面的资料可以学习;rn rn 谢谢各位。
串口数据转换成TCPIP
各位好,串口和网络的转换,怎么解决好?项目中用到的通信全是串口接口,例如:电台,zigbee模块。怎么把串口数据封包成网络数据呢?上层服务端与下面通讯时,与其它TCPIP通讯一样。现在的GPRS模块也是串口的,但经过PPP协议后,直接可以网络通讯,我现在就想达到这个功能。不知道大家有没有类似的项目。rn
VHDL串口发送和接收模块
VHDL语言的串口发送、串口接收模块,可供初学者直接调用,在CPLD上测试成功
串口发送模块Verilog源码
uart发送模块,比较简单,有需要的朋友可自行下载,有问题可留言交流!
串口发送模块设计代码
********************************************************* 独立按键滤波**********************************************************/module key_filter(                   Clk,                  Rst_n,      ...
fpg _verilog串口发送模块
fpg _verilog串口发送模块 硬件测试通过 可与PC机正常通信 稳定可靠
串口发送模块,波特率115200
串口发送模块,波特率115200,verilog编程序
串口数据发送
本课程介绍S3C2440的UART通信,为后续课程打基础。
串口发送一大堆数据
请问如何实现串口发送一大串的数据,就是一次没发完,第二次接着发送剩余的数据?
串口 发送数据库的数据
电脑通过RS232串口(DB9)发送数据库数据的程序,来源于一本书,数据库编程
串口发送16进制数据
各位大师,我是刚学的,请教串口发送16进制数据 0D 8A 34 7B 23 0A 如何写VBrn我写的如下:Private Sub Command1_Click()rnCommand1.BackColor = RGB(0, 255, 0) '...按下命令1钮,变绿色rnrnCommand2.BackColor = vbWhite '...命令2钮,变白色rnMSComm1.OutBufferCount = 0 '...清空输出寄存器rnMSComm1.Output = '...是不是在这写入要发送的数据rnrnrnrnrnrnEnd SubrnrnPrivate Sub Command2_Click()rnCommand2.BackColor = vbRed '...按下命令2钮,变红色rnCommand1.BackColor = vbWhite '...命令1钮,变白色rnrnEnd SubrnrnPrivate Sub MSComm1_OnComm()rnrnrnrnrn MSComm1.CommPort = 1rnrn MSComm1.Settings = "9600,n,8,1"rnrn MSComm1.RThreshold = 1rnrn MSComm1.InputMode = comInputModeBinary '设置为2进制接收,是接收&H00 - &HFF必要条件rnrn MSComm1.PortOpen = TruernrnrnrnrnrnEnd Subrn
串口数据发送 接收
用串口调试助手 每隔50ms发送数据 发送200多次的时候,大概会出现7、8次没有数据返回 这样正常吗
串口数据发送Socket
从串口接受到的字符串,并将接受到的数据通过socket端口发出 VC++完整代码
串口发送指定数据
我原来是发送文本编辑框的数据,按照龚建伟老师的程序编的,m_ctrlComm.SetOutput(COleVariant(m_strEditTXData));rnrn我想在想发送固定的数据,如A,我该怎么改写代码?rn
如何用中断方式判断串口有数据发送过来
在什么操作系统下实现都可以,只要能行
关于校验串口发送过来的针!的问题
用的是hdlc协议!!rn采用的CRC-CCITT=X16+X12+X5+1 进行校验的rn利用的是反转多项式0x8404!!rnbyte[] crcbuff = 0x80, 0xc0, 0x40, 0x00, 0x90, 0x27, 0x08, 0x37, 0x40, 0x0f, 0x30, [color=#FF0000]0x4e, 0x4f [/color];rn最后2个字节是校验位!!rn这个是串口数据!先低位后高位!rn我想问的是。我校验的时候是按照我这个接受的顺序。还是说需要把他们反转一下!!rn还有请高手帮我校验一下。看看我这个程序那里有问题。或者是我用的有错误的地方rnrn我用的程序如下,rn[code=C#] public sealed class CRCCCITTrn rn private static ushort[] CCITT_TABLE = rn rn 0x0000, 0x1189, 0x2312, 0x329B, 0x4624, 0x57AD, 0x6536, 0x74BF, rn 0x8C48, 0x9DC1, 0xAF5A, 0xBED3, 0xCA6C, 0xDBE5, 0xE97E, 0xF8F7, rn 0x1081, 0x0108, 0x3393, 0x221A, 0x56A5, 0x472C, 0x75B7, 0x643E, rn 0x9CC9, 0x8D40, 0xBFDB, 0xAE52, 0xDAED, 0xCB64, 0xF9FF, 0xE876, rn 0x2102, 0x308B, 0x0210, 0x1399, 0x6726, 0x76AF, 0x4434, 0x55BD, rn 0xAD4A, 0xBCC3, 0x8E58, 0x9FD1, 0xEB6E, 0xFAE7, 0xC87C, 0xD9F5, rn 0x3183, 0x200A, 0x1291, 0x0318, 0x77A7, 0x662E, 0x54B5, 0x453C, rn 0xBDCB, 0xAC42, 0x9ED9, 0x8F50, 0xFBEF, 0xEA66, 0xD8FD, 0xC974, rn 0x4204, 0x538D, 0x6116, 0x709F, 0x0420, 0x15A9, 0x2732, 0x36BB, rn 0xCE4C, 0xDFC5, 0xED5E, 0xFCD7, 0x8868, 0x99E1, 0xAB7A, 0xBAF3, rn 0x5285, 0x430C, 0x7197, 0x601E, 0x14A1, 0x0528, 0x37B3, 0x263A, rn 0xDECD, 0xCF44, 0xFDDF, 0xEC56, 0x98E9, 0x8960, 0xBBFB, 0xAA72, rn 0x6306, 0x728F, 0x4014, 0x519D, 0x2522, 0x34AB, 0x0630, 0x17B9, rn 0xEF4E, 0xFEC7, 0xCC5C, 0xDDD5, 0xA96A, 0xB8E3, 0x8A78, 0x9BF1, rn 0x7387, 0x620E, 0x5095, 0x411C, 0x35A3, 0x242A, 0x16B1, 0x0738, rn 0xFFCF, 0xEE46, 0xDCDD, 0xCD54, 0xB9EB, 0xA862, 0x9AF9, 0x8B70, rn 0x8408, 0x9581, 0xA71A, 0xB693, 0xC22C, 0xD3A5, 0xE13E, 0xF0B7, rn 0x0840, 0x19C9, 0x2B52, 0x3ADB, 0x4E64, 0x5FED, 0x6D76, 0x7CFF, rn 0x9489, 0x8500, 0xB79B, 0xA612, 0xD2AD, 0xC324, 0xF1BF, 0xE036, rn 0x18C1, 0x0948, 0x3BD3, 0x2A5A, 0x5EE5, 0x4F6C, 0x7DF7, 0x6C7E, rn 0xA50A, 0xB483, 0x8618, 0x9791, 0xE32E, 0xF2A7, 0xC03C, 0xD1B5, rn 0x2942, 0x38CB, 0x0A50, 0x1BD9, 0x6F66, 0x7EEF, 0x4C74, 0x5DFD, rn 0xB58B, 0xA402, 0x9699, 0x8710, 0xF3AF, 0xE226, 0xD0BD, 0xC134, rn 0x39C3, 0x284A, 0x1AD1, 0x0B58, 0x7FE7, 0x6E6E, 0x5CF5, 0x4D7C, rn 0xC60C, 0xD785, 0xE51E, 0xF497, 0x8028, 0x91A1, 0xA33A, 0xB2B3, rn 0x4A44, 0x5BCD, 0x6956, 0x78DF, 0x0C60, 0x1DE9, 0x2F72, 0x3EFB, rn 0xD68D, 0xC704, 0xF59F, 0xE416, 0x90A9, 0x8120, 0xB3BB, 0xA232, rn 0x5AC5, 0x4B4C, 0x79D7, 0x685E, 0x1CE1, 0x0D68, 0x3FF3, 0x2E7A, rn 0xE70E, 0xF687, 0xC41C, 0xD595, 0xA12A, 0xB0A3, 0x8238, 0x93B1, rn 0x6B46, 0x7ACF, 0x4854, 0x59DD, 0x2D62, 0x3CEB, 0x0E70, 0x1FF9, rn 0xF78F, 0xE606, 0xD49D, 0xC514, 0xB1AB, 0xA022, 0x92B9, 0x8330, rn 0x7BC7, 0x6A4E, 0x58D5, 0x495C, 0x3DE3, 0x2C6A, 0x1EF1, 0x0F78 rn ;rn public static ushort CRC(byte[] ABytes)rn rn ushort Result = 0;rn foreach (byte vByte in ABytes)rn Result = (ushort)(CCITT_TABLE[(Result ^ vByte) & 0xff] ^ (Result >> 8));rn return (ushort)(Result);rn rn [/code]
温湿度采集声音采集 NRF905发送模块
温湿度采集 声音采集 NRF905 蜂鸣器报警 SPI
发送模块(发送模块)
发送模块
GSM模块SIM900A打电话
GSM模块SIM900A打电话-1.开发环境:Arduino IDE------------------------- ----------------2.测试使用开发板型号:Arduino Leonardo or Arduino UNO R3-
TD模块打电话发短信
TD-WCDMA模块打电话发短信~~包含AT指令~
gprs模块如何打电话??
嵌入式开发板2410的串口和wavecome的q2403a相连,手法短信已经没问题,现在想搞接打电话,不知从何下手,望大家指点.谢谢
串口收到的数据转换成ascii
将串口收到的数据进行ascii码转换
单片机控制串口数据发送
使用ARM:STM32F103控制RS485数据的发送,I2C通讯
Linux下串口数据发送程序
Linux下串口数据发送程序,已调试通过。
ARM串口数据发送原理
ARM上的数据是如何发到串口(UART0)上的?最好尽量详细,如中断是如何触发的,数据是怎样从FIFO中发出去的?rn还有想问下为什么波特率越大数据越容易出错?具体的原因啊,数据发的快我是知道的,但是具体导致出错的原理是什么?
微秒级别发送串口数据
在3.0G的CPU上用QueryPerformanceCounter能做到us级别的延时,但是WriteFile到串口时用示波器看到的数据:字节之间的延时似乎不准确,有时延时800us,却得到300us的延时;延时1200us实际却是600us。不知道应该怎么做?rnrn[code=C/C++]rnvoid DelayInUs(int us)rnrn if (0 == _ns_pre_count)rn rn LARGE_INTEGER qwTicksPerSec;rn QueryPerformanceFrequency(&qwTicksPerSec);rn _ns_pre_count = qwTicksPerSec.QuadPart / 1000i64 / 1000i64;rn rnrn LARGE_INTEGER qwTime;rn QueryPerformanceCounter(&qwTime);rn __int64 startime = qwTime.QuadPart;rn __int64 endtime = startime + _ns_pre_count * (__int64)us;rn while ((__int64)qwTime.QuadPart < endtime)rn rn QueryPerformanceCounter(&qwTime);rn rnrnrnWriteFile(com, '\xff', 1, &written, NULL);rnDelayInUs(800);rnWriteFile(com, '\x00', 1, &written, NULL);rnDelayInUs(800);rnWriteFile(com, '\x01', 1, &written, NULL);rn[/code]rn
C#串口数据接收与发送
按照伍兄的博文抄下来的。 博文地址:http://www.cnblogs.com/wuhuacong/archive/2011/07/19/2111055.html#commentform 为了赚点下载分。谢谢!
C#串口发送接受数据
发送串口数据: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO.Ports; namespace SendData { class Program { static void Main...
STM32串口发送字节数据
代码如下(串口初始化自行操作):void USART1_Send_Byte(unsigned char byte,int USART_Num) { switch(USART_Num) { case 1:USART_SendData(USART1, byte); while( USART_GetFlagStatus(USART1,USART_FLAG_TC)!= SET); ...
STM32F429 DMA串口数据发送
串口数据配置void macUART4_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_AHB1PeriphClockCmd(macUART4_RX_GPIO_CLK|macUART4_TX_GPIO_CLK,ENABLE); RCC_A
使用多线程发送串口数据
我想在主线程外使用另外一个线程通过串口发送数据,并同时更新传送百分比,准备将发送的数据分成几段,不知道这样会不会改变发送的波特率,也就是本来协商好的9600的波特率,会不会因为数据的分段而出现误差,接收方采用8051单片机,望各位给点意见,谢谢!
QserialPort 串口数据发送的问题
问题描述: Qbytearray 中每一位能给存储的最大值为127,所以当我的停止位中有0xAA时,显示的其实是-85(为反码), 而且 只能用Qserialport->write()发送数据,其中的参数只能是Qbytearray 或者char* 格式; 解决方法: 发现虽然 显示的是-85 ,但实际发送过去后,下位机依然能给识别为0xAA ,之前一起没成功是因为波特率设置
串口发送long类型数据
串口发送数据,long类型,四字节,范围是0x00 ~ 0x7fffffffrn每次发送1个字节,比如0x7abcdeff,第一次发送7a,第二次发送bc,第三次发送de,第四次发送ffrn接收端在接收到数据后,要组合成原来的样子。rn该怎么操作?用C语言。
多线程发送,接收串口数据
目前多线程接收,解析数据处理好了,但用多线程发送数据时数据出了问题,一是有些指令没有数据返回,二是线程执行顺序是错了,我是用c#.NET 线程池处理的rnrn小弟想实现这样的功能,用多线程发送数据,多线程接收数据,多线程解析数据,保证实时读取串口接收的数据。可下面贴出来的这些方法没有实现要的功能,琢磨了快一个星期了,希望各位大哥指教,能给好的指导思想,有串口多线程发送,接收的项目例子更好。rnrn /// rn /// 发送多条指令,用异步的方式接收数据rn /// rn /// 发送的数据和读取返回的数据)rn /// true 读取返回的数据 false 不返回数据)rn /// rn public bool SendData(string[] cmd, string tagData, bool fag)rn rn DateTime a1 = DateTime.Now;rn //for (int i = 0; i < 1000; i++)rn //rn foreach (string s in cmd)rn rn if (s == string.Empty || tagData == string.Empty)rn return false;rn if (!serialState)rn this.InitPortCom();rn tab = parms.PtlParms(s);rn if (tab == null || tab.Rows.Count == 0)rn return false;rn DataRow frameData = tab.Select(string.Format("type='0' and name='1' ", "Output", "命令长度"))[0];rn int frameLen = Convert.ToInt32(basefun.valtag(frameData["pms"].ToString(), "命令长度")) * 2 + 12;rn byte[] buffData = analy.SetPtlData(tab, tagData);rn serialPort.Write(buffData, 0, buffData.Length);rn this.WaiteSendData(new SendTaskInfo(buffData, s));rn this.WaiteReceiveData(new ReceiveTaskInfo(s, frameLen));rn this.WaitAnalysisData(new ReceiveTaskInfo(s, frameLen));rn rn return true;rn rnrn /// rn /// 开启线程循环发送数据rn /// rn private void WaiteSendData(object data)rn rn if (!serialPort.IsOpen) rn return;rn SendTaskInfo state = data as SendTaskInfo;rn System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(ThreadSend), state);rn rnrn /// rn /// 开启线程循环取帧rn /// rn private void WaiteReceiveData(object data)rn rn if (!serialPort.IsOpen) return;rn ReceiveTaskInfo state = data as ReceiveTaskInfo; rn System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(ThreadReceive), state);rn rnrn /// rn /// 开启线程解析数据rn /// rn /// rn private void WaitAnalysisData(object data)rn rn if (!serialPort.IsOpen) return;rn ReceiveTaskInfo state = data as ReceiveTaskInfo;rn System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(GetData), state);rn rnrn /// rn /// 开启一个线程发送数据rn /// rn /// rn private void ThreadSend(object state)rn rn SendTaskInfo send = state as SendTaskInfo;rn lock (ThreadObject)rn rn Debug.Write("ThreadSendOne" + " " + send.cmdName + ":" + DateTime.Now.ToString("mm:ss.ffff") + "\r\n");rn SendTaskInfo data = state as SendTaskInfo;rn byte[] buffData = data.sendData;rn serialPort.Write(buffData, 0, buffData.Length);rn Debug.Write("ThreadSendTwo" + " " + System.Text.Encoding.ASCII.GetString(buffData) + ":" + DateTime.Now.ToString("mm:ss.ffff") + "\r\n");rn Thread.Sleep(300);rn rn rnrnrn /// rn /// 开启一个线程接收数据rn /// rn /// rn private void ThreadReceive(object state)rn rn ReceiveTaskInfo task = state as ReceiveTaskInfo;rn List tmpList = new List();rn Debug.Write("ThreadReceive1" + " " + task.cmdName + ":" + DateTime.Now.ToString("mm:ss.ffff") + "\r\n");rn bool lenState = false;rn //manulReadEvent.Reset();rn //bool fag = manulReadEvent.WaitOne();rn //if (!fag) return;rn lock (ThreadObject)rn rn while (!lenState)rn rn if (serialPort.BytesToRead > 0)rn rn byte[] buff = new byte[serialPort.BytesToRead];rn serialPort.Read(buff, 0, buff.Length);rn tmpList.AddRange(buff);rn if (tmpList.Count != task.cmdLen)rn continue;rn elsern rn lenState = true;rn Debug.Write("ThreadReceive2" + " " + tmpList.Count + ":" + DateTime.Now.ToString("mm:ss.ffff") + "\r\n");rn returnBuff.Enqueue(tmpList.GetRange(0, task.cmdLen).ToArray());rn tmpList.Clear();rnrn //manulWriteEvent.Set();rn rn rn elsern break;rn rn rn rnrn /// rn /// 解析数据rn /// rn /// rn private void WaitAnalysisData(object data)rn rn if (!serialPort.IsOpen) return;rn ReceiveTaskInfo state = data as ReceiveTaskInfo;rn System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(GetData), state);rn rnrn /// rn /// 解析串口数据rn /// rn /// rn private void GetData(object state)rn rn if (tab == null || tab.Rows.Count == 0 || returnBuff.Count == 0)rn return;rn ReceiveTaskInfo task = state as ReceiveTaskInfo;rn Debug.Write("GetData:" + task.cmdName + ":" + DateTime.Now.ToString("mm:ss.ffff") + "\r\n");rn byte[] buffAll = new byte[0];rn lock (QueueObject)rn rn Debug.Write("returnBuff.Count:" + returnBuff.Count + ":" + DateTime.Now.ToString("mm:ss.ffff") + "\r\n");rn buffAll = returnBuff.Dequeue();rn Debug.Write("buffAll.Count:" + buffAll.Length + ":" + DateTime.Now.ToString("mm:ss.ffff") + "\r\n");rn string len = string.Empty;rn int frameLen = 0;rn byte[] buffTemp = new byte[4];rn for (int i = 0; i < 4; i++)rn rn buffTemp[i] = buffAll[i + 5];rn rn len = GetAscByByte(buffTemp);rn frameLen = Convert.ToInt16(len, 16) + 8;rn if (buffAll.Length < frameLen)rn return;rnrn string returnStr = string.Empty;rn returnStr = GetAscByByte(buffAll);rn Debug.Write(returnStr + ":" + DateTime.Now.ToString("mm:ss.ffff") + "\r\n");rn bool fag = analy.GetPtlData(tab, returnStr, ref data);rn if (!fag) return;rn if (returnData.ContainsKey(task.cmdName.Trim()))rn rn returnData.Remove(task.cmdName.Trim());rn returnData.Add(task.cmdName.Trim(), data);rn rn elsern rn returnData.Add(task.cmdName, data);rn rn Debug.Write(data + "1:" + DateTime.Now.ToString("mm:ss.ffff") + "\r\n");rn if (dataFromPromEventHandle != null)rn dataFromPromEventHandle(this, null);rn Thread.Sleep(300);rn rn rn
发送并读取串口数据
我想从串口写一个数据并更具它的响应马上读取,代码如下:rn[code=C/C++]rnvoid ComToolDlg::OnButtonWR() rn // TODO: Add your control notification handler code herern VARIANT varStr;rn CString strTemp;rn CString strOut;rn int i=0;rnrn UpdateData();rn pMainView->testCtrl.ctiic.msComm.GetInput();//先预读缓冲区以清除残留数据rn rn varStr.vt=VT_BSTR;rn strOut.Format("%c",m_byteWithC);rn strOut+="\r";rn varStr.bstrVal=strOut.AllocSysString();//m_strComW;rn pMainView->testCtrl.ctiic.msComm.SetOutput(varStr);rn rn SysFreeString(varStr.bstrVal); rn //---------------rn BYTE rxdata[8]; //设置BYTE数组 An 8-bit integerthat is not signed. rn CString strtemp; rn VARIANT variant_inp;rn COleSafeArray safearray_inp;rn int count1=0;rn int len;rn long k;rnrn m_strComR="";rn m_strComRA="";rnrn Sleep(nSleepTime);//nSleepTime 需要足够大才能接收到数据rnrn while(!(pMainView->testCtrl.ctiic.msComm.GetCommEvent()==2))//事件值为2表示接收缓冲区内有字符 rn Sleep(40);rn count1++;rn if(count1>500)rn AfxMessageBox("empty");rn goto LabelEnd;rn rn ;rn rn variant_inp=pMainView->testCtrl.ctiic.msComm.GetInput(); //读缓冲区 rn safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量 rn len=safearray_inp.GetOneDimSize(); //得到有效数据长度 rn for(k=0;k
stm8串口发送的数据不正确
程序代码:rn#include"iostm8l152k4.h"rn/*******************************************************************************rn****入口参数:无rn****出口参数:无rn****函数备注:USART初始化函数rn****版权信息:蓝旗嵌入式系统rn*******************************************************************************/rnvoid Init_USART1(void)rnrn CLK_PCKENR1 |= (1<<5);//开串口时钟rn PC_DDR |= (1<<3); //TX引脚为输出PC_DDR3=1rn PC_CR1 |= (1<<3);rn PC_CR2 |= (1<<3);rn //配置USART参数rn USART1_CR1=0x00;rn USART1_CR2=0x00;rn USART1_CR3=0x00;rn // 设置波特率,必须注意以下几点:rn // (1) 必须先写BRR2rn // (2) BRR1存放的是分频系数的第11位到第4位,rn // (3) BRR2存放的是分频系数的第15位到第12位,和第3位rn // 到第0位rn // 例如对于波特率位9600时,分频系数=2000000/9600=208rn // 对应的十六进制数为00D0,BBR1=0D,BBR2=00rnrn USART1_BRR2=0x00;rn USART1_BRR1=0x0d;rnrn USART1_CR2=0x2c;//允许接收,发送,开接收中断rnrn/*******************************************************************************rn****入口参数:需要发送的数据rn****出口参数:无rn****函数备注:USART发送函数rn****版权信息:蓝旗嵌入式系统rn*******************************************************************************/rnvoid USART1_sendchar(unsigned char c)rnrn while((USART1_SR & 0x80)==0x00);//检测数据是否发送完成rn USART1_DR=c;rnrn/*******************************************************************************rn****入口参数:无rn****出口参数:无rn****函数备注:计算机通过串口调试助手可以接收开发板UART发送的十六进制数据,跳线RXD-UT TXD-URrn****版权信息:蓝旗嵌入式系统rn*******************************************************************************/rnint main( void )rnrn unsigned char i=0;rn Init_USART1();rn while (1)rn rn USART1_sendchar(i);rn i++;rn rn return 0;rnrnrn应该是从0传到0xFF,但接收到的数据和程序设置的不一样。[img=https://img-bbs.csdn.net/upload/201801/16/1516094348_650910.png][/img]rn求各位同僚指点
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法