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

【实验箱已送】STC32学习打卡

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-10-30 17:41:50

1

主题

18

回帖

77

积分

注册会员

积分
77
发表于 2023-8-9 08:42:50 | 显示全部楼层 |阅读模式
本帖最后由 STCAI-32位8051 于 2023-8-16 11:22 编辑

2023/8/9 开始打卡冲哥STC32系列视频
今年智能车负压电磁组选用的芯片就是stc32g12k128这款32位MCU,
算是已经初步接触到了这款芯片,但仍处于刚刚了解的阶段,于是希望在视频学习中再深入了解下
顺带,顺带带走STC32G12K128-实验箱-V9.6
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2025-04-27 10:40:24

11

主题

425

回帖

1971

积分

版主

积分
1971
发表于 2023-8-9 08:52:49 | 显示全部楼层
欢迎楼主继续打卡学习,分享学习感受
优秀的打卡贴会优先获赠实验箱包邮
1.png

QQ:2269694595     微信:18106296594
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-10-30 17:41:50

1

主题

18

回帖

77

积分

注册会员

积分
77
发表于 2023-8-9 22:45:43 | 显示全部楼层
【第一集】心得体会
主要内容:初步认识单片机,了解单片机的一些功能及应用;并解答了一些初学者的常见问题,给出一些学习建议
在本集视频中了解到单片机的定义及基本组成:单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
并了解到单片机几种常见的封装:PCIP、QFN、LQFP等

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-10-30 17:41:50

1

主题

18

回帖

77

积分

注册会员

积分
77
发表于 2023-8-10 08:30:55 | 显示全部楼层
【第二集】心得体会
主要内容:介绍STC32实验箱-v9.4的硬件外设,并拓展了一些外设的原理、功能及实际应用,最后简要浏览了小STC32的片上资源




【1】红外发射模块

【2】红外接收 - 红外遥控

【3】电压比较器 - 可以作为一种触发条件,以一个参考电压为基准,输入的电平信号大于它触发/小于它触发
【4】数码管 - 可以显示数字/字母
【5】万能板 - 拓展用,拓展一些芯片,和中间单片机引出的引脚飞线使用。
【6】NTC - 测量温度 (模拟),输出连续的电压信号,需要使用ADC进行模数转换
【7】18B20 - 测量温度  (数字),测量准确但无法连续采值,且速度比NTC要慢
【8】ADC按键 - 1个I/O口(有ADC功能)即可读取多个按键,节省IO,按键较多IO口较少时可以采用这一方案
【9】基准电压 - 可能是个可调的稳压,给上面的ADC按键提供参考电压
【10】PWM 模拟DAC  -数模转换,生成波形,输出特定电平等
【11】24C02 - 2Kbit的串行EEPROM存储芯片,可以实现掉电存储
【12】矩阵键盘 - 只需要将每行每列接入IO,即可读取对应键值,节省IO资源
【13】独立按键 - 1个I/O读取1个按键
【14】lcd接口 - LCD12864的接口,STC有个软件可以模拟LCD12864(手边没有LCD,可以暂时用软件模拟查看显示效果)
【15】LED指示灯 -  指示开发板是否正常供电/运行
【16】USB - 供电/烧录程序
【17】RS232 - 经典接口,现在使用需要USB-232的转接线。
【18】flash扩展 - 存放数据(容量较大)
【19】调试接口 - 连接STC烧录/调试器
【20】蜂鸣器 - 常用于发出提示音


最后简单介绍了一下STC32的片上资源:串口、定时器、DMA等



课后作业:【举出传感器实际应用的案例】
NTC传感器:测量温度(恒温)
红外接受发射模块:红外遥控(电视空调遥控器)



批注 2023-08-09 225839.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-10-30 17:41:50

1

主题

18

回帖

77

积分

注册会员

积分
77
发表于 2023-8-10 09:05:20 | 显示全部楼层
【第三集】心得体会

主要内容:1、STC-ISP软件的下载 2、STC32手册的下载 3、PDF阅读器的下载 4、搭建C251开发环境(keil) 5、配套例程下载 6、第一个工程的编译和下载


【1】STC-ISP下载
STC-ISP是STC家专用的烧录程序,不仅阔以烧录程序还集成了很多开发工具:虚拟显示功能、生成范例程序、驱动安装等
可以直接从STC的网站下载:STC-ISP下载传送门:深圳国芯人工智能有限公司-工具软件 (stcai.com)
【2】【3】STC32手册和PDF阅读器在之前就下载使用过了,就不详述了
补充:这里冲哥提供了一个阅读手册的方法:一般手册都是成百上千页的文档,从头到尾翻找效率较低,所以可以借助PDF软件列出的大纲/目录,准确查找到文档中所需的部分
【4】C251环境搭建
下载C251版本的keil安装包,按照手册步骤安装,激活
【5】程序包下载
可以通过STC-ISP里的资料下载板块直接下载STC32配套例程
【6】第一个工程的编译和下载
步骤总结:预先安装stc32g12k128支持包,并从STC-ISP内的Keil仿真板块下载安装STC32的usb下载驱动
                用keil打开例程后,在option for Target中选择单片机型号,并勾选编译输出Hex文件选项,点击build编译
                连接试验箱并打开STC-ISP烧录软件,打开由keil编译生成的hex文件,调整芯片信号、串口、IRC频率后点击下载即可
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-10-30 17:41:50

1

主题

18

回帖

77

积分

注册会员

积分
77
发表于 2023-8-10 10:01:47 | 显示全部楼层
本帖最后由 ANop 于 2023-8-10 10:24 编辑

【第四集】 心得体会
主要内容:点亮LED灯



原理

GPIO可以通过软件读取其输入电平或控制其输出高低电平。
将各部分按照顺序依次连接:GPIO-发光二极管-限流电阻-5v

这是通过控制GPIO输出高低电平即可控制LED亮灭
此种位共阳极开漏输出控制LED,还有一种是共阴极推挽输出控制LED(由于IO负载能力有限,建议使用第一种方式)


程序编写
1、新建Keil工程
新建projects-Target目录下添加.c文件,点击options for target设置芯片型号,并在output板块中勾选输出hex文件这一选项
2、编写程序
**********************************************************
#incude "stc.h"
#include "usb.h"
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";
/*定义P0、P4、P6特殊功能寄存器*/
sfr P0 = 0x80;   
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;

sfr P4 = 0x80;
sfr P4M1 = 0x93;
sfr P4M0 = 0x94;

sfr P6 = 0x80;
sfr P6M1 = 0x93;
sfr P6M0 = 0x94;

/*对单个IO口进行位定义*/
sbit P40 = P4^0;
sbit P60 = P6^0;

void main()
{
        /*通过配置PxM0、PxM1,设置GPIO功能模式等*/
        P0M0 = 0x00;
        P0M1 = 0x00; //0x00:将Px配置为准双向口
        
        P4M0 = 0x00;
        P4M1 = 0x00;
        
        P6M0 = 0x00;
        P6M1 = 0x00;

        usb_init();
        EA = 1;

        while(1)
        {
                //将4.0、6.0口置0,点亮LED
                P40 = 0;
                P60 = 0;
        }      
}

void sys_init()     //函数定义
{
    WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
    EAXFR = 1; //扩展寄存器(XFR)访问使能
    CKCON = 0; //提高访问XRAM速度

     P3M0=0x00;
     P3M1=0x00;

     P3M0 &=~0x03;
     P3M1 |=0x03;

    //设置USB使用的时钟源
    IRC48MCR = 0x80;    //使能内部48M高速IRC
    while (!(IRC48MCR & 0x01));  //等待时钟稳定
}
************************************************************      



4、编译生成hex文件使用STC-ISP烧录(USB-CDC/虚拟串口,不停电下载)
新建3个变量char *USER_DEVICEDESC = NULL;
                  char *USER_PRODUCTDESC = NULL;
                  char *USER_STCISPCMD = "@STCISP#";
并将char* USER_STCISPCMD 的值设为自定义的命令 默认为@STCISP#
在main 函数中 添加usb_init() 初始化函数
打开中断 EA=1;
复制例程中的sys_init()函数到本工程中,并在main函数中调用。







回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-10-30 17:41:50

1

主题

18

回帖

77

积分

注册会员

积分
77
发表于 2023-8-10 10:34:44 | 显示全部楼层
【第五集】心得体会

主要内容:详细讲解了数制、c语言中常用的运算符及数据类型,并演示了c语言中printf的实现
一、printf的实现
主函数中添加
if(DeviceState !=DEVSTATE_CONFIGURED) //判断USB是否连接成功
continue;
if(bUsbOutReady)
{
usb_OUT_done(); //接收应答(固定格式)
printf("室内温度:%.2f\r\n",11.2);
}
二、常见运算符
算术运算符
1、加(+)减(-)乘(*)除(/)
2、模(余)运算符(%):不允许出现浮点型,余数正负取决于被除数正负
3、自增(++i,--i;i++,i--)

位运算符
1、右移(>>)、左移(<<)最低为补0
2、按位与(&)
3、按位或(|)
4、按位异或(^)
5、取反(~)


赋值运算符
1、+= 加赋值(a+=3 等价于 a=a+3)
2、-= 减赋值
3、*= 乘赋值
4、/= 除赋值
5、%= 求余赋值
6、&= 按位与赋值
7、|= 按位或赋值
8、^=按位异或赋值
9、<<=左移位赋值(>>=右移位赋值)


三、基本的数据类型
批注 2023-08-10 103417.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-10-30 17:41:50

1

主题

18

回帖

77

积分

注册会员

积分
77
发表于 2023-8-10 10:47:24 | 显示全部楼层
【第六集】心得体会
主要内容:花式点亮LED灯,在程序编写过程中,学会使用函数,并形成模块编程的思维,提高程序的可读性和可维护性


一、LED闪烁
#include "com/stc.h"
#include "usb.h"


sfr P0 = 0x80;   
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;

sfr P4 = 0x80;
sfr P4M1 = 0x93;
sfr P4M0 = 0x94;

sfr P6 = 0x80;
sfr P6M1 = 0x93;
sfr P6M0 = 0x94;

/*对单个IO口进行位定义*/
sbit P40 = P4^0;
sbit P60 = P6^0;


#define  MAIN_Fosc 24000000UL    //定义一个IRC系统时钟
void delay_ms(u16 ms)  //u16 在stc.h中进行了定义
{
  unsigned int i;
  do
  {
    i=MAIN_Fosc/6000; //计算出1ms需要循环段次数
    while(--i);
  } while(--ms);
}


void main()
{
        /*通过配置PxM0、PxM1,设置GPIO功能模式等*/
        P0M0 = 0x00;
        P0M1 = 0x00; //0x00:将Px配置为准双向口

        P4M0 = 0x00;
        P4M1 = 0x00;

        P6M0 = 0x00;
        P6M1 = 0x00;


        while(1)
        {
                //将4.0、6.0口置0,点亮LED
                P40 = 0;
                P60 = 0;
                delay_ms(20);

                P40 = 1;
                P60 = 1;
                delay_ms(20);


        }

}
第六集(下)
二、函数的使用
在模块化编程里,函数使用分为如下三步:
1:函数定义
      返回值 函数名称(入口参数)
     {
           函数要执行的功能;
           return 返回值;(无返回值可不写)
      }
      @返回值:没有返回值就是 void
      @函数名称:避开关键词,不重复,非特殊字符随便取
      @入口参数:类型 + 名称,多个参数“,“分开,空就写 void
2.函数声明
      返回值函数名称(入口参数);
3.函数调用
      函数名称(入口参数):
三、新建文件,使用模块化编程
新建 xxx.c 和 xxx.h 文件,代表一个功能块。
xxx.h 格式:
      #ifndef __XXX_H
      #define __XXX_H
      调用头文件
      函数声明...
      #endif
xxx.c 格式
      #include"xxx.h"
      函数定义
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-10-30 17:41:50

1

主题

18

回帖

77

积分

注册会员

积分
77
发表于 2023-8-10 17:36:57 | 显示全部楼层
【第七集】心得体会

主要内容:学习使用独立按键,并使用按键控制LED灯。

在本节课中介绍了两种按键效果
第一种:按下按键即执行

if(KEY == 0)
{
  Delay_ms(10);  
  if(KEY ==0)
  {
    执行功能
  }
}
第二种:按下按键松手后再执行
if(KEY == 0)
{
  Delay_ms(10);  
  if(KEY ==0)
  {
      while(KEY==0); //松手检测
      执行功能
   }
}
由于按键按下/弹起时存在机械抖动,高低电平跳变,可以在程序中添加短暂延时(delay_ms)进行软件消抖

数组的使用:
数组使用分为如下两步:
1.声明及初始化
    类型名称[长度]={数值};<--直接定义,也阔以声明后再赋初值
    例如:
     usigned char x[3]={23,43,41};
2.使用
    赋值:名称[索引]= 数值
    调用:名称[索引]
        索引从0开始



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-10-30 17:41:50

1

主题

18

回帖

77

积分

注册会员

积分
77
发表于 2023-8-10 22:46:05 | 显示全部楼层
【第八集】心得体会

主要内容:认识蜂鸣器,了解控制方法及基本控制电路,并学习编写蜂鸣器控制程序




1、认识蜂鸣器

分为有源蜂鸣器和无源蜂鸣器,有源蜂鸣器内置震荡源,通电可直接发声,但无源蜂鸣器可通过程序控制音高


2、控制原理/基本电路
081627pksx5cw15vnozo5n.jpg

控制P54印引脚,高电平蜂鸣器关闭,低电平蜂鸣器开启
#define buzzer P54

               if(key == 0)
              {
                  delay_ms(10);
                  if(key == 0)
                   {
                        buzzer = !buzzer  //点击按键蜂鸣器开,再点关。                  
                        while(key == 0);                       
                    }
          }


3、冲哥程序复现
132553hwy175gggwxynfwt.jpg

132553s0nckiztac99slna.jpg

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 13:15 , Processed in 0.122686 second(s), 104 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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