haishi28
发表于 2024-3-24 18:41:35
第十五集 外部中断
中断,已经融入了我的工作和生活。相比于“查询”的方式,“中断”才应该是最优解。
外部中断,但中断名字用的是INTx,其实是GPIO的中断,为啥其他中断都是用外设名字,而GPIO却直接用“外部中断”,有哪个大佬知道,可以普及一下。
疑问1,如果只想捕捉上升沿,通过软件可以实现吗?配置成IT0=0,然后中断处理函数中判断是上升沿触发还是下降沿触发,只在上升沿触发时执行代码?
疑问2,手册里提到I/O中断,不是外部中断,怎么理解呢?
haishi28
发表于 2024-3-26 17:40:44
本帖最后由 haishi28 于 2024-5-12 09:56 编辑
第十六集 IO中断
上一集我的疑问,这一集马上有了回应。
但我听了三遍,还是没找到IO中断和外部中断之间的区别与联系。
从手册里看,IO中断和外部中断是完全不同的中断。下图红框里是外部中断,绿框里是IO中断。
有意思的是,32G的手册里还特意把IO中断拿出来写了一章。
视频中还提到了:不可屏蔽中断,是不是可以理解成该中断不可被打断,如果设置成不可屏蔽中断?那为什么不直接叫“不可打断中断”呢?
下图里的红色字体提示,与楼上我的截图不一致。
留一个作业给自己,用同一个管脚,分别用外部中断和IO中断两种方式去实现按键检测。
Keil 中断拓展插件
https://www.stcaimcu.com/forum.p ... Dg5MzM2MHwxfDQ4MzQ=
haishi28
发表于 2024-3-26 21:22:11
周一提交申请,今天就到手。
给力!{:5_332:}
haishi28
发表于 2024-3-26 22:18:28
haishi28 发表于 2024-3-17 11:23
第五集 printf,数的进制
作为老鸟,没啥新鲜内容,快速看过。
只是有一个疑问,printf函数不需要去配置什 ...
这个回答了我的疑问,建议提及一下printf的来源。
haishi28
发表于 2024-3-28 18:45:10
第十七集 ADC
两种结果对齐方式提一下,
这个RESFMT=0时,适合取高8位,ADC_RES直接得到结果。
这个RESFMT=1时,适合取所有位,ADC_RES<<8 + ADC_RESL。
另外想提一下ADC按键,没法使用在有两个及以上的按键同时按下的情况,很受限制。代码说明里也证明了我的想法。
haishi28
发表于 2024-4-16 21:30:40
本帖最后由 haishi28 于 2024-5-12 09:59 编辑
第十八集 ADC电源电压采集和ADC按键
通过内部准确的1.19V的mV值,反推出Vref,进而完成Vin的检测。
Vin / ADCin=Vref / 4096=V1.19 / ADCch15,
其中V1.19=CHIPID7<<8+CHIPID8(mV)
手册里给出的精度为正负1%,感觉可以满足大部分应用要求。
haishi28
发表于 2024-4-23 22:30:48
第十九集 NTC
延续上一集的ADC数据采集,结合查表法,实现AD值转换温度,比较容易理解。当年做PT1000,利用STM8,好像是10位AD,达不到精度要求,就通过软件增加白噪音,取均值来提高分辨率。
haishi28
发表于 2024-4-23 23:03:30
本帖最后由 haishi28 于 2024-5-12 18:17 编辑
第二十集 串口通信
这集讲最通用的通信方式UART,现在很多模块化的网关产品,多数都支持串口转其他,比如WiFi,蓝牙,Zigbee。
最后总结的内容比较有用,对我来说,Timer2可以同时为多个串口提供时钟,只要波特率一样。
也许是看的不够仔细,没有看出对于这个“共享Timer2”是如何配置的。
基于之前程序的编写,应该是将几个串口都配置成利用Timer2产生时钟,然后根据波特率配置Timer2的重载值,这也是为什么要求所有共享时钟的串口需要波特率一致。
另外想提的一点是,接收超时。
首先对于接收超时,可以方便完成一帧数据的接收,不用再用一个Timer去计时,不知道能不能符合Modbus通信的超时要求,有待验证。
其次,上图中写的STC32G12K128无此功能,是指接收超时功能没有?还是不能配置接收超时的开关呢?
superchao
发表于 2024-4-23 23:13:07
haishi28 发表于 2024-4-23 23:03
第二十集 串口通信
这集讲最通用的通信方式UART,现在很多模块化的网关产品,多数都支持串口转其他,比如W ...
打卡15集才给送一个实验板?看视频没板子怎么学习{:5_296:}
haishi28
发表于 2024-4-24 11:02:14
superchao 发表于 2024-4-23 23:13
打卡15集才给送一个实验板?看视频没板子怎么学习
好问题!
当然有了板子,一边看,一边实验,会比较好。
但免费送,总要有些门槛吧,可以理解。而且,先纸上谈兵,敲敲代码,也是动手实验的前提。
没板子时,重点放在理解原理,读数据手册,敲代码,编译通过,simulator调试,也是有很多工作可以做的。
拿到板子,可能一天就把之前的所有代码在板子上运行一下,调试一下问题即可。