社区
C#
帖子详情
Timer1 不进中断 Tick中断问题
zhanglei185100
2012-09-08 02:18:39
大家好,小弟是C#新手,最近在做一个小项目,使用工具里自带的Timer来实现定时发送数据的功能,我的思路是这样的,在点击启动按钮后,定时器启动,定时时间到,串口发送一组数据,发送完毕后将定时器的使能端关闭,等待数据接收,数据接收完毕后再在接受函数里在打开定时器使能端,在继续发数,但是现在发现第一次发送完毕接收后,在打开使能端不进中断了,不知是为什么?搞了一上午也没弄明白。
...全文
175
5
打赏
收藏
Timer1 不进中断 Tick中断问题
大家好,小弟是C#新手,最近在做一个小项目,使用工具里自带的Timer来实现定时发送数据的功能,我的思路是这样的,在点击启动按钮后,定时器启动,定时时间到,串口发送一组数据,发送完毕后将定时器的使能端关闭,等待数据接收,数据接收完毕后再在接受函数里在打开定时器使能端,在继续发数,但是现在发现第一次发送完毕接收后,在打开使能端不进中断了,不知是为什么?搞了一上午也没弄明白。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
soul_8750
2012-09-08
打赏
举报
回复
enable是等于ture么?
卓一航啊
2012-09-08
打赏
举报
回复
卓一航啊
2012-09-08
打赏
举报
回复
sj490790083
2012-09-08
打赏
举报
回复
因为timer是在UI线程的,当UI线程被阻塞的时候timer就不运行,只为排队等待,个人觉得串口通信还是用多线程处理比较好
zhanglei185100
2012-09-08
打赏
举报
回复
现在想了另外一种方法,不停止Tick事件,做一个全局变量,来判断是否发送,好用了,不过还是不明白为什么这里使能端关闭在打开就不好使了?
C#在SerialPort_DataReceived事件中加入
timer
控件
timer
.enable启用后,不能进入
tick
事件原因。
如图,若是在其他的控件事件中启用
timer
.enable=true,则如果该事件的进程在结束后,该事件进程销毁,同时
timer
开启的事件也会销毁,从而无法进入到
timer
的
tick
事件中。 调试方法: 若在该事件中无法进入
tick
事件,在该事件中加入延时函数进行调试,(注意:延时函数不能使用 System.Threading.Thread.Sleep(1000);//延时1000毫秒 该延时函数,该延时函数在执行时,不会相应任何事件)可以使用延时方法: public static voi..
杰理之
tick
_
timer
使用的注意事项【篇】
在关闭系统所有
中断
时,不会关闭完全关闭
tick
timer
,这时
tick
timer
所有的运行代码必须在RAM里面;
linux 定时器
内核中的延时是忙等待或者睡眠等待,为了充分利用CPU资源,使系统有更好的吞吐性能,在对延迟时间的要求并不是很精确的情况下,睡眠等待通常是值得推荐的。
tick
中断
->
tick
_sched_
timer
(
tick
_sched_handle())->update_process_times()->scheduler_
tick
()。
tick
_sched_
timer
回调函数太耗时,导致
timer
fd_tmrproc 回调函数滞后。scheduler_
tick
()具体被调用流程:
tick
中断
->
STM32
中断
1、STM32是通过NVIC管理
中断
的。 NVIC 嵌套向量
中断
控制器。 ①进行优先级分组。 HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); ②滴答初始化并启动。 HAL_Init
Tick
(
TICK
_INT_PRIORITY); ③CubeMX的NVIC,Priority Group 优先级分组, Time base:System
tick
timer
是滴答时钟,默认是使能的, EXTI Line0 interrupt 是外部
中断
【RISC-V】外部
中断
分为
中断
与异常,这里主要记录RISC-V指令集的
中断
。mstatus寄存器的MIE标志位是全局
中断
开关位,相当于一级
中断
标志。用于设置M/S/U模式下对应的External/
Timer
/Software
中断
。(M/S/U下方特权模式说到) 在RISCV下,将
中断
(interrupt)又细分为三种类型:定时
中断
(
timer
)、核间
中断
(soft)、
中断
控制器
中断
(external)。定时
中断
可以用于产生系统的
tick
,核间
中断
用于不同cpu核之间通信,
中断
控制器则负责所有外设
中断
。这个设计和arm下有点不一样
C#
110,534
社区成员
642,576
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章