找回密码
 立即注册
楼主: wangyo***

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

[复制链接]
  • TA的每日心情
    开心
    前天 22:49
  • 签到天数: 55 天

    [LV.5]常住居民I

    15

    主题

    222

    回帖

    1197

    积分

    金牌会员

    积分
    1197
    发表于 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工具太贴心了,专门设计了定时器计算器板块,能够直接生成定时器初始化函数,当时决定加入这个板块的人一定是个人才
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    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, 2024-5-18 03:56 , Processed in 0.069004 second(s), 66 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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