C#有类似于STM32的串口接收空闲中断吗?
STM32有一种串口接收空闲中断,用于接收串口数据帧很有用,C#中有类似的功能吗? 换种思路,判断一下最后一次接收中断到当前时间的间隔。超过你的设定值就可以认为空闲了。 这些都是串口驱动层完成的c# 操作不了这么底层的东西。。。 ahong2hao 发表于 2022-2-11 14:50换种思路,判断一下最后一次接收中断到当前时间的间隔。超过你的设定值就可以认为空闲了。 ...
这种做法需要单独开一个定时器才行的,担心遇到冲突 本帖最后由 chunjiu 于 2022-2-11 15:19 编辑
我记得 C# 中有个辅助进程可以担任此角色,而且多线程编程模式可用来仿真 MCU 的中断响应操作。
PS:
当然它不是实时的,与硬件中断的实时性不一样。
也许是“辅助线程”,太久了记不清了。 专门弄个线程来检测 c#使用非阻塞调用,超时就返回了。所有api都可以设置超时。 wye11083 发表于 2022-2-11 16:21
c#使用非阻塞调用,超时就返回了。所有api都可以设置超时。
应该叫异步模式,通过task函数回调! wurst 发表于 2022-2-11 16:48
应该叫异步模式,通过task函数回调!
你太闲了。一个非阻塞的简单事情。 wye11083 发表于 2022-2-11 19:17
你太闲了。一个非阻塞的简单事情。
你说的啥API啊用这么久C# 还没听说过呢。 浮华一生 发表于 2022-2-12 10:41
你说的啥API啊用这么久C# 还没听说过呢。
c#自带的串口模式。打开之后调那个non blocking的接口,设置好长度和超时。要么就用try去读那个immediate接口。无非就是死等或立即返回+错误码。 wye11083 发表于 2022-2-12 11:43
c#自带的串口模式。打开之后调那个non blocking的接口,设置好长度和超时。要么就用try去读那个immediate ...
呃,就是r/w + timeout 呀。那还是 事件 + Queue + 时间戳 好用。 硬件思维,高层软件,一般是没有这种逻辑的。
页:
[1]