18344371880
发表于 2023-5-24 20:06:47
第十五集打卡:
这集其实还是学习中断系统,只不过不是定时器中断,而是外部中断了,其实来说,外部中断更容易上手,也是一样操作寄存器的玩法
其实不论外部中断,还是定时器的中断,都有中断优先级,然后其实我们还要注意一个点,如果存在多个定时器中断的话,一定需要设置优先级,不然可能存在中断跳过的情况,这样会让程序运行出现错误,而且要调整为穿插着触发中断
冲哥每集都在传授新知识,又在用老例程反复扩展,真的是位良师
课后作业2:其实中断的设置都是一样的,不过有区别的就是,外部中断2,3,4只支持下降沿,所以说,如果项目中的某个中断不需要优先级太高的话,然后刚好只需要下降沿触发,我们可以优先使用2,3,4的外部中断
课后作业3:有个很实用的,就是弄一个数码管的24小时时钟,然后到不论调整时分秒,我们都采用不同的中断系统去绑定一个按钮,然后就能在不中止计时的情况下进行调整时分秒
18344371880
发表于 2023-5-24 21:05:56
第十六集打卡:
这集的很有意思,io口的中断模式真的很香,说实话,我接触过stc89c51,也接触过stc8g,但都没有这个功能和寄存器,这也就是stc的强大之处
其实和常规的外部中断口操作没什么两样,就是中断号需要绕个圈圈,这个有两种做法,第一就是下载stc的官方软件直接安装,第二就是通过汇编语言去跳转,但其实我有一个疑问,如果多个超过31中断号的中断同时触发的话,也是都跳转13号中断么
其实不论是传统中断还是io口中断,都不建议在中断里加延时,特别是延时时间大于中断节奏的那种,那就约等于无限中断,特别是定时器的情况下。
请原谅我这么粗鲁的方式:
其实我有一个疑问,如果多个超过31中断号的中断同时触发的话,也是都跳转13号中断么
其实我有一个疑问,如果多个超过31中断号的中断同时触发的话,也是都跳转13号中断么
其实我有一个疑问,如果多个超过31中断号的中断同时触发的话,也是都跳转13号中断么
18344371880
发表于 2023-5-24 22:40:05
第十七集打卡:
学到了第一个内部外设:adc
也就是把数字信号转的模拟信号的一个硬件,就好比我们的音响,就是一个adc的表现吧
然后adc中最关键的就是基准电压,如果要追求极致准确的话,建议采用外部基准电压
STC的新51单片机基本具备了adc功能,但有些芯片是没有外部参考电压的,这还好,如果有外部参考电压的话,在采取内部参考电压,也就是1.19v的时候,外部参考电压引脚务必不能悬空,可以接vcc
还有一个点,不论采用vcc作基准电压,还是另外设置基准电压,甚至直接使用内部的1.91v,我们的模拟信号的电压都不能大于我们拟定的基准电压,虽然我没试过高于会怎么个情况,但起码出来的数据是不正确的
adc的结果获取又分为两种:查询法和中断法,其实中断法就是比查询法多了一行代码,EADC=1;
_nop_()的意思就是消耗一个指令周期,用这个之前,需要引用intrins.h这个头文件
中途冲哥还不忘了指点一下硬件工程师必备的吃饭家伙“万用表”,哈哈哈
我们可以看到,冲哥基本上给我们录视频都是在较晚的时候,今天还咳嗽了,务必注意身体啊
然后预编译这一块确实还是有点迷糊,还是得再理解理解,现在是能理解大体轮廓,还得再实操实操
小绿豆
发表于 2023-5-25 08:59:28
跟着冲哥学习STC用着STC32实验箱方便且高效
18344371880
发表于 2023-5-25 13:31:06
第十八集打卡:
这集还是adc的扩展玩法
首先第一个就是内部电压的测量,其实这还是很实用的教学,虽然说案例程序里也有,但有人再详细的教一遍,使我们更容易上手
也教学了一个关于外部电压的测量实验,这个已经能直接用到生活中了,大概每个家庭里都有电池吧,有了这个,我能就能知道电池的使用情况,不会存在浪费
矩阵键盘的新代替,这样可以再次降低io的资源利用,但还是存在和矩阵键盘一样的问题,如果两个键一起按下的话,会不会判断错误,希望冲哥能针对性的试验一下,关于显示两位数码管的话,就是除10取余然后赋值
然后也涉及了单击和长按的几种状态,这一块又加深了对for函数的运用
后面也是完善了一下关于之前提出的时钟设置的问题,其实我和冲哥的思路还是一样的
课后作业的话:其实就是那个设置时钟的函数改一下,然后用一个数组去进行存储,然后每10ms进入一次,那就判断一次,时与分与秒的现行时间是否与存储起来的数组相同,对于秒的话,我们可以设置为大于等于数组,这样也可以防止跳过了,正常哪怕跳过了,也顶多就是1秒后
18344371880
发表于 2023-5-25 14:36:46
第十九集打卡:
用ntc进行测温,原理就是判断电阻的阻值,再换句话来说,在电流恒定的情况下,电压会跟着电阻的变化而变化,我们可以查询这个型号的数值手册,看看他的一个温度曲线
然后这个又有两种方案,一是查询,二是反推
课后作业2:其实还是用到一个数组,全部测量结果存到数组了,然后再相加除10
课后作业4:其实更简单,在10ms检测一次的函数里检测,变量自加,达到之后关闭adc电源和数码管三极管,至于检测内容的话,就是检测温度是否无多少变化幅度
XieKevin
发表于 2023-5-25 16:28:44
跟着冲哥学stc,加油加油
18344371880
发表于 2023-5-25 18:41:10
第二十集打卡:
终于学到串口通信了,串口通信一直以来是我的弱项,只能用,无法灵活起来
rx和tx是要反接的,就像我们烧录程序的烧录器一样
串口通信又分并行通信和串行通信,我们本集学的就是串行通信
然后又分为同步串口和异步串口,我们这集学习的是异步串口
然后又分为全双工和半双工和单工,我们这集学习的是全双工的
然后还有一个重要参数,就是波特率,如9600,那说明我们每秒钟可以发送9600位的数据,而且,还有一个重点就是,双方得约定好,用多少波特率,停止位是哪个,数据位是哪个
那既然是异步串口,自然就要有信号告诉对方,我要准备发送数据了和我发送完了,这就需要起始位信号,和停止位信号了,那怎么判断发送的数据完整性呢,这就需要校验位了
然后还要一个参数,那就是传输距离的问题,从某种意义上来说,电压越低,传输距离越短,还要一个就是涉及到硬件设计了,串口通信的新,在pcb设计的时候,务必保证线路长度不要偏差太大,还要就是一个阻抗的问题,这个我也还不太懂
这次课后作业确实感觉自己做不出来,主要是冲哥这期的内容主要是抄手册,还暂时理解不到每条语句所代表的东西, 让我直接抄作业的话是没问题的,但理解确实还跟不上
希望冲哥能对这集展开一下
18344371880
发表于 2023-5-25 21:56:09
第二十一集打卡:
这集主要是教我们怎么去完美移植程序,然后告诉我们怎么去与电脑通信,制作驱动程序,就好比我们的鼠标、键盘,也就是与电脑通信的成果
还记得,大概三年前把笔记本电脑拆了,然后学习某站上的把键盘改到插电脑使用,现在才发现,那其实不就是一个单片机和一个封装好的程序,只是他提供了app,便于我们去设置
我们的21集下半部分主要是学习怎么通过串口发送字符去控制实验板上的硬件
串口的操作提升的无限的可能,可惜这一块,我才刚刚入门,还得好好研究研究
sprintf和printf的区别就是用于向终端输出字符
其实学到了这一块,也就让我对于蓝牙,WiFi的互联实现了入门
18344371880
发表于 2023-5-25 22:47:33
第二十二集打卡:
这集主要就是对串口通信和cdc的一个回顾,总结就是,stc的cdc真的很强大,对比起串口通信来说,速率等等都提升很大,如果能够开源的话,或许可以形成自己的产品模式
cdc串口相对于普通串口的优势为:数据传输更快,使用更简单便捷,数据传输更可靠,自动缓存数据
但串口通信还是有他存在的价值的,比如有些大咖,总不能止步于WiFi或蓝牙的,有好几个外部串口组件,单靠cdc是完全不够的
使用cdc串口的话,可以在配件还不完善的情况下,就能实现对其他配件的调试工作,极大提高了我们的调试效率