armos 发表于 2022-2-11 14:07:11

C#有类似于STM32的串口接收空闲中断吗?

STM32有一种串口接收空闲中断,用于接收串口数据帧很有用,C#中有类似的功能吗?

ahong2hao 发表于 2022-2-11 14:50:09

换种思路,判断一下最后一次接收中断到当前时间的间隔。超过你的设定值就可以认为空闲了。

acmilannast 发表于 2022-2-11 14:51:32

这些都是串口驱动层完成的c# 操作不了这么底层的东西。。。

armos 发表于 2022-2-11 14:52:00

ahong2hao 发表于 2022-2-11 14:50
换种思路,判断一下最后一次接收中断到当前时间的间隔。超过你的设定值就可以认为空闲了。 ...

这种做法需要单独开一个定时器才行的,担心遇到冲突

chunjiu 发表于 2022-2-11 15:05:24

本帖最后由 chunjiu 于 2022-2-11 15:19 编辑

我记得 C# 中有个辅助进程可以担任此角色,而且多线程编程模式可用来仿真 MCU 的中断响应操作。

PS:

当然它不是实时的,与硬件中断的实时性不一样。

也许是“辅助线程”,太久了记不清了。

yuyu87 发表于 2022-2-11 16:10:33

专门弄个线程来检测

wye11083 发表于 2022-2-11 16:21:36

c#使用非阻塞调用,超时就返回了。所有api都可以设置超时。

wurst 发表于 2022-2-11 16:48:39

wye11083 发表于 2022-2-11 16:21
c#使用非阻塞调用,超时就返回了。所有api都可以设置超时。

应该叫异步模式,通过task函数回调!

wye11083 发表于 2022-2-11 19:17:42

wurst 发表于 2022-2-11 16:48
应该叫异步模式,通过task函数回调!

你太闲了。一个非阻塞的简单事情。

浮华一生 发表于 2022-2-12 10:41:54

wye11083 发表于 2022-2-11 19:17
你太闲了。一个非阻塞的简单事情。

你说的啥API啊用这么久C# 还没听说过呢。

wye11083 发表于 2022-2-12 11:43:16

浮华一生 发表于 2022-2-12 10:41
你说的啥API啊用这么久C# 还没听说过呢。

c#自带的串口模式。打开之后调那个non blocking的接口,设置好长度和超时。要么就用try去读那个immediate接口。无非就是死等或立即返回+错误码。

浮华一生 发表于 2022-2-13 10:59:30

wye11083 发表于 2022-2-12 11:43
c#自带的串口模式。打开之后调那个non blocking的接口,设置好长度和超时。要么就用try去读那个immediate ...

呃,就是r/w + timeout 呀。那还是 事件 + Queue + 时间戳 好用。

jiki911 发表于 2022-2-14 09:49:07

硬件思维,高层软件,一般是没有这种逻辑的。
页: [1]
查看完整版本: C#有类似于STM32的串口接收空闲中断吗?