ils1234 发表于 2020-9-29 13:33:59

中断的时机就是不可控的,所以你要是需要用中断,就要想清楚怎么收拾这个烂摊子,13楼的朋友说的是一种方法。

另外中断也是可以被中断的,新人可能不太好理解,慢慢想。
几乎是一定要避免同一个中断来源的再次中断,否则栈内存早晚被耗尽,就跑飞了。

经验之谈:中断代码执行时间要尽可能的短,几乎不能有IO操作,IO操作都时间太久了。

另外,c语言里,中断里面会修改的全局变量,必须有volatile声明,否则也会出现意想不到的麻烦。

MCUWTF 发表于 2020-10-7 17:52:54

初学的可以试用下Virtual51

pdshyh 发表于 2020-10-7 18:30:47

去年比葫芦画瓢按示例学习,中断串口通信等等一塌糊涂,重新学习买了本书,带视频中断和定时器讲的比书本还详细,100多兆不能上传:L,给个书名《51单片机 C语言程序设计教程王云》

补充内容 (2020-10-8 09:29):
见笑了楼主的中断概念过去也看到过楼主的困惑和各位老师的不同方向的解答也受益匪浅堆栈先进后出的工作原理也是在看pc时都看过去年是跟着示例学习对串口对参数设置都很迷惑单片机构造图和工作原理图不同看书才明白

w6955 发表于 2020-10-7 20:28:51

书看的太多就傻了

shzps 发表于 2020-10-8 10:58:31

变量不可控啊,你要定义全局变量还是静态变量,或者说定义的变量分开不就好啦。
页: 1 [2]
查看完整版本: 学51单片机,卡在了中断这一节