我有我的代码,读取和写入MFC编写的串行端口.这些程序运行良好,但由于发生了许多操作(读写),因此速度有点慢.我有一个定时器,可以在串口上进行操作.计时器如下:
Loop_Timer = SetTimer(1,50,0);
Run Code Online (Sandbox Code Playgroud)
串口传输信息如下:
BaudRate = 57600;
ByteSize = 8;
Parity = NOPARITY;
StopBits = ONESTOPBIT;
fAbortOnError = false;
Run Code Online (Sandbox Code Playgroud)
定时器启动时会发生以下写入和读取操作:
Write(command);
Read(returned_message);
returned_message.Trim();
...
//finds a value from the returned string
...
Run Code Online (Sandbox Code Playgroud)
因此,对于给定的选定选项,此读取和写入操作可能是1,2,3或4次.
对于Ex:选项1要求在给定的计时器中发生上述功能4次.选项2要求上述功能发生2次.(因为它只有两个带有返回值的变量).等......
现在,我试图做的是提高整体操作的速度,使其稳健并快速响应.我试过改变计时器,但它仍然很慢.有关改进的建议吗?
我正在尝试计算十六进制数中可用的位数。例如:0x00000001应将计数返回为8。
谁能建议最有效的方法是什么?我尝试将其转换为 aCString并使用 ' ' 获取长度GetLength(),但这似乎在这里不起作用。
编辑:抱歉,如果我忘记提及,我存储十六进制数字的变量是无符号短整型。
尝试过这个:
unsigned short number;
CString HexValue;
HexValue.Format("%.8x",number); // number = 0000000000000000, 16 0's
HexValue = "0x" + HexValue;
int length = HexValue.GetLength() - 2; // returns an 8 here
Run Code Online (Sandbox Code Playgroud) 我试图将float32_t*const值传递给函数参数,我收到异常错误.我尝试过很多东西但仍然收到错误.我的功能是:
float32_t Distance(float32_t *const argDistance);
Run Code Online (Sandbox Code Playgroud)
其中float32_t是:typedef float float32_t;
我试图像这样访问这个函数:
float32_t* const tempTipDistance = 0;
Run Code Online (Sandbox Code Playgroud)
但它往往会抛出异常:
SEH exception with code 0xc0000005 thrown in the test body.
Run Code Online (Sandbox Code Playgroud)
有关如何将值传递给此函数的任何建议?