找回密码
 立即注册
楼主: wangyong9512

【实验箱已发出】STC32G学习打卡日历/学习感悟

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:320
  • 最近打卡:2025-04-30 11:29:16
已绑定手机

21

主题

487

回帖

1023

积分

金牌会员

积分
1023
发表于 2023-8-12 08:43:18 | 显示全部楼层
很好,对于基本功不扎实的我,经常来看看还是有不少收获的,支持
回复 支持 反对

使用道具 举报 送花

3

主题

47

回帖

187

积分

注册会员

积分
187
发表于 2023-8-12 11:45:16 | 显示全部楼层
8.12 第十集
本来第十集昨晚就看完了,但是这节课听的有点头大,今天上午整理了代码的注释才来打卡。
本节课讲了数码管的动态显示,每一个位码和段码的选择后添加1ms的延时用来动态刷新,人的肉眼无法察觉。
由于时间显示秒后的两位数,而毫秒是千分位,因此第八位数码管的显示采用了TimCount÷10并取余数的方式来实现,其余数码管以此类推。
回复 支持 反对

使用道具 举报 送花

3

主题

47

回帖

187

积分

注册会员

积分
187
发表于 2023-8-12 15:30:34 | 显示全部楼层
8.12 第11集 定时器的使用
第一次使用定时器,最初反应是居然不用在主函数里运行,真神奇
另外STC的ISP工具太贴心了,专门设计了定时器计算器板块,能够直接生成定时器初始化函数,当时决定加入这个板块的人一定是个人才
回复 支持 1 反对 0

使用道具 举报 送花

3

主题

47

回帖

187

积分

注册会员

积分
187
发表于 2023-8-13 13:54:33 | 显示全部楼层
8.13 第12集 计数器的使用
本节课讲了计数器的应用,加深了定时器的理解。这对于后续编程很有帮助。
TH1和TL1代表定时器高字节和低字节,能将其组合为一个16位的计数值
学会了M法测速,每按下按键都代表一个脉冲,n=M/CT C指单圈脉冲数,固定时间T统计编码器脉冲数M,n为速度
回复 支持 反对

使用道具 举报 送花

3

主题

47

回帖

187

积分

注册会员

积分
187
发表于 2023-8-13 14:28:02 | 显示全部楼层
本帖最后由 wangyong9512 于 2023-8-21 18:56 编辑

8.13 第17集 模数转换器上
由于我的项目需要读取传感器的电压值,所以先跳到这里学模数转换器的使用
对照手册和冲哥讲解进行ADC模块的学习

ADC_CONTR-----ADC控制寄存器:
ADC_POWER=1 打开ADC电源
ADC_START=1 开始ADC转换
ADC_FLAG    ADC转换结束标志位,需要软件清零,程序范例为while(!ADC_FLAG);ADC_FLAG=0;
ADC_CHS  ADC模拟通道的选择位

ADCCFG---ADC配置寄存器
右对齐需要将RESFMT=1,左对齐置零

ADCTIM-----ADC时序控制器
时钟设置为最慢,内部越稳定,除非有速度要求。

ADC转换结果计算公式:
12位ADC转换结果=4096*(ADC被转换通道输入电压Vin/ADC外部参考源的电压) (有独立ADC_Vref+管脚)如果没有,就以VCC作为基准电压。

其余设置除特殊情况可选默认值

进行ADC采集时,引脚输入电压不能大于VCC,也不能大于VREF
ADC口需要设置高阻输入


ADC的初始化中添加EADC=1,能够开启中断方式,中断号5
中断的代码见手册,包含清中断标志、读取ADC结果、继续AD转换(ADC_START=1)

if预编译
理解了,目前觉得没必要使用,等需要了再去冲哥的例子里找。


回复 支持 反对

使用道具 举报 送花

3

主题

47

回帖

187

积分

注册会员

积分
187
发表于 2023-8-14 10:51:15 | 显示全部楼层
8.14 第18集 模数转换器下
本节课跟随冲哥了解了ADC的寄存器和相关编程,我自己用屠龙刀完成了测输入电压并打印在串口上。也借鉴了布丁橘长的代码。
选用屠龙刀的P00口输入采集电压,我们选型的位移传感器的量程是0-8mm,输出0-10电压。以内部2.5V电压为基准,添加4个相同的电阻分压
同时使用电压表进行测量,串口打印出的电压值与电压表的测量值基本相同。
程序上.png
程序下.png
输入电路.jpg
线路连接.jpg
回复 支持 反对

使用道具 举报 送花

3

主题

47

回帖

187

积分

注册会员

积分
187
发表于 2023-8-14 13:33:40 | 显示全部楼层
8.14 第11集和第12集定时器和计数器查缺补漏
手册中能够找到所有的中断号,定义函数的时候加上interrupt 中断号 ,每次中断的时候就会自动找到这个函数去执行。
【RH1,TL1]是计时器的初始值,如果初始值为FFFF,那么再来一个脉冲就会重新计数,这就是计数器的原理。
回复 支持 反对

使用道具 举报 送花

3

主题

47

回帖

187

积分

注册会员

积分
187
发表于 2023-8-14 14:41:20 | 显示全部楼层
本帖最后由 wangyong9512 于 2023-8-14 20:01 编辑

8.14 第13集 简易多任务处理
一个功能对应一个.c和.h。修饰符extern用在变量或者函数的声明前,用来说明此函数是在别处定义的,要在此处引用,不可赋初值。


bdata位寻址变量。static静态变量,只有第一次运行时才会赋值,循环运行中不会执行



ALT+Shift能从中间选中下拉

循环变量 for(初值;判断;执行)

相当精妙的编程:~KEY&(1<<i) // 按钮的状态取反,和1左移i位进行与运算,能够判断出第几个按键有没有按下。

编程思想很受用,高屋建瓴,模块化编程既方便自己又方便他人


回复 支持 反对

使用道具 举报 送花

3

主题

47

回帖

187

积分

注册会员

积分
187
发表于 2023-8-15 17:50:51 | 显示全部楼层
8.15 第33集 PWM基础
看论文得知,磁悬浮项目需要用到PWM技术来控制通过线圈的电流,从而控制磁场强度,因此跳到这里来学习。
本节课学到了PWM的基础知识,知道这玩意时干啥的了,依据占空比的不同输出不同大小的电压,能够对线圈的磁场强度进行控制。
回复 支持 反对

使用道具 举报 送花

3

主题

47

回帖

187

积分

注册会员

积分
187
发表于 2023-8-16 14:05:43 | 显示全部楼层
8.16 第34集 单通道的PWM输出
跟着冲哥把PWM的各种寄存器配置了一遍,能够在P60口输出电压。
我将线圈的两端分别接屠龙刀的P60和GND,能够吸住小铁片,但是吸力特别小,光靠5V电压驱动还是太天真了。
后续应该会用更大的电源驱动线圈,至于根据距离传感器的参数来控制线圈的电流,思路还不是很清晰。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 19:56 , Processed in 0.137957 second(s), 100 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表