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

STC32G12k128K 学习开始,打卡中~实验箱收到了~ !

[复制链接]
  • TA的每日心情
    奋斗
    7 小时前
  • 签到天数: 64 天

    [LV.6]常住居民II

    8

    主题

    75

    回帖

    268

    积分

    中级会员

    积分
    268
     楼主| 发表于 2024-2-13 22:14:54 | 显示全部楼层
    本帖最后由 JimOrange 于 2024-2-16 00:14 编辑

    第十五集:外部中断。外部中断和之前用定时器中断放在一起记忆,注意他两区别与共性。通过查看STC手册,“中断列表”中,次序代表它的优先级。其中只有P3.2(INT0)、P3.3(INT1)、P3.5(INT2)、P3.7(INT3)和P3.0(INT4)能作为外部中断。
    截屏2024-02-15 23.06.34.png
    以INT0为例:需要控制IT0、IE0、EX0、EA。
    IT0为0,上升沿和下降沿都会触发(特别注意),为1则只有下降沿触发;
    IE0为外部中断0中断标志位,1为已触发,初始化时需要初始化为零;
    EX0:外部中断0中断允许位。0为禁止、1位允许;
    EA:总中断开关。



    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    难过
    7 小时前
  • 签到天数: 105 天

    [LV.6]常住居民II

    11

    主题

    69

    回帖

    247

    积分

    中级会员

    积分
    247
    发表于 2024-2-14 13:02:51 | 显示全部楼层
    我就闹不清楚该怎么查看芯片手册,心里没有谱,不知道要查哪些寄存器,从哪儿找到查找指引
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    7 小时前
  • 签到天数: 64 天

    [LV.6]常住居民II

    8

    主题

    75

    回帖

    268

    积分

    中级会员

    积分
    268
     楼主| 发表于 2024-2-15 08:05:16 | 显示全部楼层
    垂柳工作室 发表于 2024-2-14 13:02
    我就闹不清楚该怎么查看芯片手册,心里没有谱,不知道要查哪些寄存器,从哪儿找到查找指引 ...

    初学单片机都会有的疑惑,只能用到哪个功能再找找对应的寄存器,基本上都有功能都会有对应的寄存器管理。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    难过
    7 小时前
  • 签到天数: 105 天

    [LV.6]常住居民II

    11

    主题

    69

    回帖

    247

    积分

    中级会员

    积分
    247
    发表于 2024-2-15 12:20:03 | 显示全部楼层
    谢谢33楼的鼓励
    回复 支持 1 反对 0 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    7 小时前
  • 签到天数: 64 天

    [LV.6]常住居民II

    8

    主题

    75

    回帖

    268

    积分

    中级会员

    积分
    268
     楼主| 发表于 2024-2-16 00:15:22 | 显示全部楼层
    本帖最后由 JimOrange 于 2024-2-17 07:08 编辑

    第十六集:IO中断。太好了,之前我以为只有固定的几个按钮来实现按键的中断,原来STC支持普通的I/O中断。
    端口中断模式寄存器PxIM1, PxIM0, 其中:
    M1   M0
    0      0    (下降沿中断)STC32G系统都不支持
    0      1      (上升沿中断)STC32G系统都不支持
    1      0      (低电平中断)
    1      1     (高电平中断)

    PxINTE: 端口中断使能(enable)寄存器、PxINTF:端口中断标志(flag)寄存器, 0为没有请求,1为有请求
    截屏2024-02-16 22.48.41.png

    通过工具,可以扩展中断源编号,其中引脚的序号已经规定好,不能乱用。
    中断源优先级:先执行高优先级,如果同一优先级,先执行次序高的。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    难过
    7 小时前
  • 签到天数: 105 天

    [LV.6]常住居民II

    11

    主题

    69

    回帖

    247

    积分

    中级会员

    积分
    247
    发表于 2024-2-16 08:49:18 | 显示全部楼层
    今天温习第30集iic总线
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 176 天

    [LV.7]常住居民III

    17

    主题

    283

    回帖

    474

    积分

    中级会员

    积分
    474
    发表于 2024-2-16 09:08:06 | 显示全部楼层
    支持学习,共同进步。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    7 小时前
  • 签到天数: 64 天

    [LV.6]常住居民II

    8

    主题

    75

    回帖

    268

    积分

    中级会员

    积分
    268
     楼主| 发表于 2024-2-16 17:17:45 | 显示全部楼层
    jackfangxq 发表于 2024-2-16 09:08
    支持学习,共同进步。

    谢谢~ 共同进步
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    7 小时前
  • 签到天数: 64 天

    [LV.6]常住居民II

    8

    主题

    75

    回帖

    268

    积分

    中级会员

    积分
    268
     楼主| 发表于 2024-2-16 17:44:43 | 显示全部楼层
    垂柳工作室 发表于 2024-2-16 08:49
    今天温习第30集iic总线

    这么快,你是不是已经学完了一遍
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    7 小时前
  • 签到天数: 64 天

    [LV.6]常住居民II

    8

    主题

    75

    回帖

    268

    积分

    中级会员

    积分
    268
     楼主| 发表于 2024-2-17 07:09:10 | 显示全部楼层
    本帖最后由 JimOrange 于 2024-2-29 21:49 编辑

    第十七集:模数转换器ADC。STC提供12位高速A/D转化器。使用ADC功能时,vref引脚千万不能悬空,一定要接到外部参考电压或者VCC上。
    截屏2024-02-29 21.13.16.png
    ADC_CONTR: ADC控制寄存器,其中有5个标志位,如下:
    ADC_POWER: 0为关闭ADC电源,1为打开ADC电源
    ADC_START: ADC启动位,需要ADC检查时,设置为1,完成后自动清零,手动清零不影响正在检测。
    ADC_FLAG: ADC结束标志位。当完成ADC,硬件会置1,需要软件(手动)清零。

    ADC_CHS[3:0]: 能使用ADC功能的引脚只有15个,分别:P1.0~P1.7(其中没有P1.2,用P5.4代替), P0.0~P0.6, 其中ADC_CHS:1111标志位为测试电压1.19V占用。 截屏2024-02-17 23.29.28.png
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    截屏2024-02-29 21.16.11.png
    ADCCFG: ADC配置寄存器, 其中标志位RESFMT:ADC转换结果格式,0为左对齐,1为右对齐;标志位SPEED[3:0]:设置ADC时钟(0000~1111)+ 1 ###FADC = SYSclk / 2 / (SPEED + 1)
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    截屏2024-02-29 21.19.19.png
    ADCTIM: ADC时序控制寄存器,其中标志位CSSETUP:ADC通道选择时间控制,0为默认一个时钟,1为两个时钟;CSHOLD:ADC通道保持时间控制;SMPDUTY:ADC模拟信号采集控制,注意不能小于01010(时钟数为11)

    截屏2024-02-18 21.37.27.png

    12ADC转换速度 = SYSclk / 2 / (SPEED[3 : 0] + 1) / [ (CSSETUP + 1) + (CMPDUTY + 1) + (CSHOLD + 1) + 12]



    2的12次方为4096.
    截屏2024-02-18 21.40.44.png

    高精度ADC参考线路图,用到的TL431(2.5V基准电压源),与一般精度ADC区别:

    1.verf引脚接到2.5V,一般精度接到VCC;
    2.原因:因为VCC有可能连接多个用电器,导致电压不稳。(高精度测试电压必须<= 2.5V)

    ADC_RES: ADC转换结果寄存器。

    示例代码:
    ///////////////////////////////////////////////////////
    ADCTIM = 0x3f;        //设置ADC内部时序,0 0 1 1                1 1 1 1
                            //ADCTIM: ADC时序控制寄存器,
                            //其中标志位CSSETUP:ADC通道选择时间控制,0为默认一个时钟,1为两个时钟;
                            //CSHOLD:ADC通道保持时间控制;
                            //SMPDUTY:ADC模拟信号采集控制,注意不能小于01010(时钟数为11),这里设置为11111,也就是32 (31 + 1), 1(00000)
            
    ADCCFG = 0x2f;        //设置ADC时钟为:系统时钟2/16 ,        0010        1111
                            //ADCCFG: ADC配置寄存器,       --x-  1111
                            //其中标志位RESFMT:ADC转换结果格式,0为左对齐,1为右对齐;
                            //标志位SPEED[3:0]:设置ADC时钟(0000~1111)+ 1
                            //FADC = SYSclk / 2 / (SPEED + 1)。
            
    ADC_POWER = 1;        //使能ADC
    float ADC_Read(u8 No)                //指定通道,返回12位ADC数值
    {
            float res;
            ADC_CONTR &= 0xf0;        //清空低四位
            ADC_CONTR |= No;    //低四位,ADC_CHS[3:0],对应15个ADC通道

            ADC_START = 1;                //启动ADC转换
            _nop_();            //等待1个时钟
            _nop_();
            while (!ADC_FLAG);  //查询ADC完成标志,等待ADC转换结束
            ADC_FLAG = 0;                //清空ADC完成标志
            res = (ADC_RES << 8) + ADC_RESL;                     
            return res / 4096 * 2.5;
    }
          
    while (1)
    {
            printf("当前ADC值:%0.2f\r", ADC_Read(0));    //对应P1.0通道
            delay_ms(500);
    }









    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-20 17:35 , Processed in 0.079672 second(s), 65 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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