parent
f03e134606
commit
005bd5bcef
|
@ -342,10 +342,10 @@ void SerialPort::OnRxHandler()
|
|||
|
||||
#pragma arm section code
|
||||
|
||||
void SerialPort::ReceiveTask(void* param)
|
||||
void SerialPort::ReceiveTask()
|
||||
{
|
||||
auto sp = (SerialPort*)param;
|
||||
assert(sp, "串口 ReceiveTask param Error");
|
||||
//auto sp = (SerialPort*)param;
|
||||
auto sp = this;
|
||||
|
||||
//!!! 只要注释这一行,四位触摸开关就不会有串口溢出错误
|
||||
if(sp->Rx.Length() == 0) return;
|
||||
|
@ -385,7 +385,8 @@ void SerialPort::Register(TransportHandler handler, void* param)
|
|||
// 建立一个未启用的任务,用于定时触发接收数据,收到数据时开启
|
||||
if(!_taskidRx)
|
||||
{
|
||||
_taskidRx = Sys.AddTask(ReceiveTask, this, -1, -1, "串口接收");
|
||||
//_taskidRx = Sys.AddTask([](void* p){ ((SerialPort*)p)->ReceiveTask(); }, this, -1, -1, "串口接收");
|
||||
_taskidRx = Sys.AddTask(&SerialPort::ReceiveTask, this, -1, -1, "串口接收");
|
||||
_task = Task::Get(_taskidRx);
|
||||
// 串口任务深度设为2,允许重入,解决接收任务内部调用发送然后又等待接收匹配的问题
|
||||
_task->MaxDeepth = 2;
|
||||
|
|
|
@ -83,7 +83,7 @@ private:
|
|||
|
||||
Task* _task;
|
||||
uint _taskidRx;
|
||||
static void ReceiveTask(void* param);
|
||||
void ReceiveTask();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -407,8 +407,8 @@ TraceStack::TraceStack(cstring name)
|
|||
TraceStack::~TraceStack()
|
||||
{
|
||||
// 清空最后一个项目,避免误判
|
||||
if(_TS_Len > 0) _TS[_TS_Len--] = "";
|
||||
//_TS->Pop();
|
||||
//if(_TS_Len > 0) _TS[--_TS_Len] = "";
|
||||
_TS_Len--;
|
||||
}
|
||||
|
||||
void TraceStack::Show()
|
||||
|
|
Loading…
Reference in New Issue