找回密码
 立即注册
查看: 254|回复: 20

冲哥教程学习记录打卡

[复制链接]
  • TA的每日心情
    开心
    18 小时前
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    31

    主题

    160

    回帖

    217

    积分

    中级会员

    积分
    217
    发表于 2024-4-27 18:50:36 | 显示全部楼层 |阅读模式

    这个是了解试验箱硬件的学习过程,发在了交流区。
    https://www.stcaimcu.com/forum.php?mod=viewthread&tid=8030

    以下继续学习,在打卡区持续记录。
    第三集:
    配置keil环境, 下载试验箱程序。
    资料下载-->软件库函数及范例程序->STC32G试验箱程序。
    芯片型号->STC32G12K128
    keil仿真设置-> 添加型号和头文件到Keil中。
    烧写:
    芯片型号,扫描串口,打开hex程序,选择时钟,最后下载/编程。下载前有个按钮需要按一下。
    线缆连接:
    可以直接接电脑usb的d+,d-。
    回复 送花

    使用道具 举报

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

    [LV.3]偶尔看看II

    31

    主题

    160

    回帖

    217

    积分

    中级会员

    积分
    217
     楼主| 发表于 2024-4-27 18:52:47 | 显示全部楼层
    本帖最后由 durongze 于 2024-4-27 18:54 编辑

    下载学习资料, 查看Example 中的例子,例子有30个:
    0.DEMO
    1.C语言Printf
    10.矩阵按键
    11.外部中断
    12.IO中断
    13.ADC采集
    14.ADC应用
    15.NTC温度采集
    16.串口2通信
    17.串口PC通信
    18.CDC串口通信
    19.看门狗
    2.LED闪烁
    20.比较器
    21.内部EEPROM
    22.DS18b20温度读取
    23.软件模拟SPI
    24.硬件SPI
    25.SPI读写W25X40CL
    26.软件IIC读写24C02
    27.硬件IIC读写24C02
    28.24C02串口读写器(移植)
    29.单通道PWM输出编写
    29.课前测试(定时器模拟PWM)
    3.按键
    30.任意频率的PWM输出和死区互补波形输出
    4.蜂鸣器
    4.蜂鸣器作业
    5.seg静态显示1位
    6.seg动态显示
    7.定时器0
    8.Count_T1
    8.Count_T1_测速
    9.TIM多任务
    ----------------------------
    还未一一学习。  下一个教程是点亮 led 。
    https://www.stcaimcu.com/forum.p ... p;extra=&page=1

    回复 支持 反对 送花

    使用道具 举报

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

    [LV.3]偶尔看看II

    31

    主题

    160

    回帖

    217

    积分

    中级会员

    积分
    217
     楼主| 发表于 2024-4-27 19:15:17 | 显示全部楼层
    本帖最后由 durongze 于 2024-4-27 19:16 编辑

    第四集:
    操作GPIO口,P0是0组,P0.0 是0组的0号脚。
    通过视频的7:55知道Q11 ss8850的发射极是vcc,
    如果要点亮led4,P4.0 需要低电平,P6.0也需要低电平。
    通过视频的13:20, 将程序抄写下来,
    工程配置里修改target  输出hex文件。
    按照第3集视频的烧写教程烧写,最后灯不亮,
    需要将P0改为P4,
    sfr P4 = 0xc0;    // 定义P4寄存器
    sfr P4M1 = 0xB3;  //定义P4M1寄存器。
    sfr P4M0 = 0xB4;  
    // 以上这3句是端口操作

    sbit P40 = P4^0;  // 三极管控制脚  意思是在P4中定义一个位。
    sbit P60 = P6^0;  // led 控制脚

    main :
    P4M1  = 0x00;  //
    P4M0  = 0x00;

    P4 = 0;
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.3]偶尔看看II

    31

    主题

    160

    回帖

    217

    积分

    中级会员

    积分
    217
     楼主| 发表于 2024-4-27 19:26:59 | 显示全部楼层
    第五集:
    使用 stc_usb_cdc_32g.lib

    main :
        sys_init
              把P0-P7 设置为双向口
        usb_init
        printf("Hello world");
    在软件界面,勾选下载完自动打开串口

    学习二进制十六进制的转换。
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.3]偶尔看看II

    31

    主题

    160

    回帖

    217

    积分

    中级会员

    积分
    217
     楼主| 发表于 2024-4-27 19:47:18 | 显示全部楼层
    本帖最后由 durongze 于 2024-4-27 19:48 编辑

    第六集:
    用delay_ms函数实现Led闪烁。
    void delay_ms(u16 ms)
    {
         u16 i;
         do{
                i = MAIN_Fosc / 6000;
                while(--i);
         }while(--ms);
    }

    1. 学习 while(){};
    2.学习do{}while();

    回复 支持 反对 送花

    使用道具 举报

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

    [LV.3]偶尔看看II

    31

    主题

    160

    回帖

    217

    积分

    中级会员

    积分
    217
     楼主| 发表于 2024-4-27 20:42:16 | 显示全部楼层
    第七集:
    通过按键点灯。
    P3.2 INT0 连接的是17
    P3.3 INT1 连接的是18
            if( KEY1 == 0  )       
            {
                    delay_ms(10);
                    if( KEY1 == 0 )
                    {
                            printf("press key\r\n");
                            P60 = 0;       
                    }
            }
            else               
            {
                    P60 = 1;       
            }
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.3]偶尔看看II

    31

    主题

    160

    回帖

    217

    积分

    中级会员

    积分
    217
     楼主| 发表于 2024-4-28 10:30:48 | 显示全部楼层
    本帖最后由 durongze 于 2024-4-28 10:43 编辑

    第八集:
    有源蜂鸣器
            if( KEY1 == 0  )
            {
                    delay_ms(10);
                    if(  KEY1 == 0 )
                    {
                            while(  KEY1 == 0 );
                            BEEP = !BEEP;
                    }
            }
    用第六集的定时器配合蜂鸣器可以实现电磁炉定时报警功能
    10.png 11.png
    目前蜂鸣器的响应实际都是直接延时,如果延时的过程中,有新的按键,应该是无法响应的。


    回复 支持 反对 送花

    使用道具 举报

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

    [LV.3]偶尔看看II

    31

    主题

    160

    回帖

    217

    积分

    中级会员

    积分
    217
     楼主| 发表于 2024-4-28 11:10:46 | 显示全部楼层
    第九集:
    数码管
    首先将0-9的数字对应的段位总结出来。
    u8 SEG_Tab[10] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 };        //0-9
    if( KEY2 ==0 )
    {
            delay_ms(10);
            if( KEY2 ==0 )
            {
                    BEEP = 0;
                    delay_ms(10);
                    BEEP = 1;                               
            }
    }
    上面的意思应该是,有按键按下超过10ms,就开启蜂鸣器,并且持续开10ms,
    https://www.stcaimcu.com/forum.php?mod=attachment&aid=NDI1MzJ8NGQ1MTBkY2N8MTcxNTI0OTcwNXwwfA%3D%3D   https://www.stcaimcu.com/forum.php?mod=attachment&aid=NDI1MzN8YmRhMmFlYzJ8MTcxNTI0OTcwNXwwfA%3D%3D
    14.png
    15.png
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.3]偶尔看看II

    31

    主题

    160

    回帖

    217

    积分

    中级会员

    积分
    217
     楼主| 发表于 2024-4-28 12:03:00 | 显示全部楼层
    第十集:
    数码管动态显示
    https://www.stcaimcu.com/forum.php?mod=attachment&aid=NDI1Mzl8NDJjYzk5ODN8MTcxNTI0OTcwNXwwfA%3D%3D://42540.pnghttps://www.stcaimcu.com/forum.php?mod=attachment&aid=NDI1NDF8OTZhOTQ1NDd8MTcxNTI0OTcwNXwwfA%3D%3D
    16.png
    17.png
    18.png
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.3]偶尔看看II

    31

    主题

    160

    回帖

    217

    积分

    中级会员

    积分
    217
     楼主| 发表于 2024-4-28 13:40:44 | 显示全部楼层
    第十一集:
    定时器

    19.png
    20.png

    这里是中断号,后面写中断函数时,需要。

    21.png
    这个时中断函数的实现
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-9 18:15 , Processed in 0.070445 second(s), 75 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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