找回密码
 立即注册
查看: 166|回复: 14

跟着冲哥学习STC32G单片机

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-06-02 07:17:50
已绑定手机

6

主题

34

回帖

234

积分

中级会员

积分
234
发表于 2025-5-27 06:05:13 | 显示全部楼层 |阅读模式
学习第一集,了解单片机的相关知识,学习了什么是单片机,他能做什么?新手常见解答和学习建议.

截图202505270605027671.jpg
截图202505270604137721.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-06-02 07:17:50
已绑定手机

6

主题

34

回帖

234

积分

中级会员

积分
234
发表于 2025-5-27 06:06:31 | 显示全部楼层
今天学习第二集
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-06-02 07:17:50
已绑定手机

6

主题

34

回帖

234

积分

中级会员

积分
234
发表于 2025-5-27 06:10:54 | 显示全部楼层
今天学习第二集,了解了实验箱的基本功能,基本模块,外围电路与AI8051U实验箱不一样,我学习了AI8051U,感觉基础要先跟着冲哥学习STC32单片机更能够容易入门,并且学习内容要全面一些
截图202505270610496737.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-06-02 07:17:50
已绑定手机

6

主题

34

回帖

234

积分

中级会员

积分
234
发表于 2025-5-27 06:12:32 | 显示全部楼层
实验箱的模块如图
截图202505270612041158.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-06-02 07:17:50
已绑定手机

6

主题

34

回帖

234

积分

中级会员

积分
234
发表于 2025-5-27 06:16:06 | 显示全部楼层
今天学习了第三集,开发环境的搭建,主要有以下几个方面的内容,由于前面已经学习了AI8051U单片机,对于KEILC251搭建已经比较熟悉了,很快就完成了任务
截图202505270614053928.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-06-02 07:17:50
已绑定手机

6

主题

34

回帖

234

积分

中级会员

积分
234
发表于 2025-5-27 06:17:10 | 显示全部楼层
  1. #include "COMM/stc.h"                //调用头文件
  2. #include "COMM/usb.h"
  3. char *USER_DEVICEDESC = NULL;
  4. char *USER_PRODUCTDESC = NULL;
  5. char *USER_STCISPCMD = "@STCISP#";
  6.        
  7. //sbit P40 = P4^0;        //三极管控制引脚
  8. //sbit P60 = P6^0;        //LED控制引脚
  9. //sbit P61 = P6^1;        //LED控制引脚
  10. void sys_init();        //函数声明
  11. void main()                                        //程序开始运行的入口
  12. {
  13.         sys_init();                                //USB功能+IO口初始化
  14.         usb_init();                                //usb库初始化
  15.         EA = 1;                                        //CPU开放中断,打开总中断。
  16.        
  17.         while(1)                //死循环
  18.         {
  19.                 P40 = 0;        //三极管引脚输出低电平
  20.                 P60 = 0;        //led4引脚输出低电平
  21.                 P61 = 0;        //led5引脚输出低电平
  22.         }
  23. }
  24. void sys_init()                //函数定义
  25. {
  26.     WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
  27.     EAXFR = 1; //扩展寄存器(XFR)访问使能
  28.     CKCON = 0; //提高访问XRAM速度
  29.         P0M1 = 0x00;   P0M0 = 0x00;   //设置为准双向口
  30.     P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
  31.     P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
  32.     P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
  33.     P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
  34.     P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口
  35.     P6M1 = 0x00;   P6M0 = 0x00;   //设置为准双向口
  36.     P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
  37.        
  38.     P3M0 = 0x00;
  39.     P3M1 = 0x00;
  40.    
  41.     P3M0 &= ~0x03;
  42.     P3M1 |= 0x03;
  43.     //设置USB使用的时钟源
  44.     IRC48MCR = 0x80;    //使能内部48M高速IRC
  45.     while (!(IRC48MCR & 0x01));  //等待时钟稳定
  46.     USBCLK = 0x00;        //使用CDC功能需要使用这两行,HID功能禁用这两行。
  47.     USBCON = 0x90;
  48. }
复制代码
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-06-02 07:17:50
已绑定手机

6

主题

34

回帖

234

积分

中级会员

积分
234
发表于 2025-5-27 06:17:41 | 显示全部楼层

完成了点灯实验
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-06-02 07:17:50
已绑定手机

6

主题

34

回帖

234

积分

中级会员

积分
234
发表于 2025-5-27 06:21:41 | 显示全部楼层
学习了第五集C语言基础,相当于再次温习了相关知识
截图202505270621383851.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-06-02 07:17:50
已绑定手机

6

主题

34

回帖

234

积分

中级会员

积分
234
发表于 2025-5-27 06:27:45 | 显示全部楼层
今天学习了第六集LED闪烁和花式点灯
  1. #include "../../comm/STC32G.h"
  2. #include "stdio.h"
  3. #include "intrins.h"
  4. typedef         unsigned char        u8;
  5. typedef         unsigned int        u16;
  6. typedef         unsigned long        u32;
  7. #define MAIN_Fosc        24000000UL
  8. u8 ledIndex;
  9. u8 code ledNum[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  10. void  delay_ms(u8 ms);
  11. /******************** 主函数 **************************/
  12. void main(void)
  13. {
  14.     WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
  15.     EAXFR = 1; //扩展寄存器(XFR)访问使能
  16.     CKCON = 0; //提高访问XRAM速度
  17.     P0M1 = 0x30;   P0M0 = 0x30;   //设置P0.4、P0.5为漏极开路(实验箱加了上拉电阻到3.3V)
  18.     P1M1 = 0x30;   P1M0 = 0x30;   //设置P1.4、P1.5为漏极开路(实验箱加了上拉电阻到3.3V)
  19.     P2M1 = 0x3c;   P2M0 = 0x3c;   //设置P2.2~P2.5为漏极开路(实验箱加了上拉电阻到3.3V)
  20.     P3M1 = 0x50;   P3M0 = 0x50;   //设置P3.4、P3.6为漏极开路(实验箱加了上拉电阻到3.3V)
  21.     P4M1 = 0x3c;   P4M0 = 0x3c;   //设置P4.2~P4.5为漏极开路(实验箱加了上拉电阻到3.3V)
  22.     P5M1 = 0x0c;   P5M0 = 0x0c;   //设置P5.2、P5.3为漏极开路(实验箱加了上拉电阻到3.3V)
  23.     P6M1 = 0x00;   P6M0 = 0xff;   //设置为推挽输出
  24.     P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
  25.     P40 = 0;                //LED Power On
  26.     while(1)
  27.     {
  28.         P6 = ~ledNum[ledIndex];        //输出低驱动
  29.         ledIndex++;
  30.         if(ledIndex > 7)
  31.         {
  32.             ledIndex = 0;
  33.         }
  34.         delay_ms(250);
  35.         delay_ms(250);
  36.     }
  37. }
  38. void  delay_ms(u8 ms)
  39. {
  40.      u16 i;
  41.      do{
  42.           i = MAIN_Fosc / 6000;
  43.           while(--i);
  44.      }while(--ms);
  45. }
复制代码
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-06-02 07:17:50
已绑定手机

6

主题

34

回帖

234

积分

中级会员

积分
234
发表于 2025-5-27 06:34:03 | 显示全部楼层
今天学习了第七集,按键点灯实验,
  1. #include "COMM/stc.h"                //调用头文件
  2. #include "COMM/usb.h"
  3. #define KEY1 P32                //定义一个按键 引脚选择P32
  4. #define KEY2 P33                //定义一个按键 引脚选择P33
  5. #define MAIN_Fosc 24000000UL        //定义主时钟
  6. char *USER_DEVICEDESC = NULL;
  7. char *USER_PRODUCTDESC = NULL;
  8. char *USER_STCISPCMD = "@STCISP#";
  9.        
  10. sbit P40 = P4^0;        //三极管控制引脚
  11. sbit P60 = P6^0;        //LED控制引脚
  12. sbit P61 = P6^1;        //LED控制引脚
  13. void sys_init();        //函数声明
  14. void delay_ms(u16 ms);        //unsigned int
  15. void main()                                        //程序开始运行的入口
  16. {
  17.         u8 LED_Data = 0XFE;
  18.        
  19.         u8 num=0;
  20.         u8 LED_DataTab[8] = { 0XFE,0XFD, 0XFB,0XF7,0XEF,0XDF,0XBF,0X7F};
  21.        
  22.         sys_init();                                //USB功能+IO口初始化
  23.         usb_init();                                //usb库初始化
  24.         EA = 1;                                        //CPU开放中断,打开总中断。
  25.        
  26.         P6 = LED_Data;
  27.         while(1)                //死循环
  28.         {
  29.                 if( DeviceState != DEVSTATE_CONFIGURED )         //
  30.                         continue;
  31.                 if( bUsbOutReady )                                                               
  32.                 {
  33.                         usb_OUT_done();
  34.                 }
  35.                 P40 = 0;        //三极管引脚输出低电平
  36. ------------------------------------------------按下点亮,松开熄灭        ------------------------------------------------       
  37.                 if( KEY1 == 0  )        //判断按键有没有按下
  38.                 {
  39.                         delay_ms(10);
  40.                         if( KEY1 == 0 )
  41.                         {
  42.                                 printf("按键P32已经按下\r\n");
  43.                                 P60 = 0;        //LED0点亮
  44.                         }
  45.                 }
  46.                 else                //如果没有按下
  47.                 {
  48.                         P60 = 1;        //LED0点亮
  49.                 }
  50.                
  51. ------------------------------------------------按下熄灭,松开点亮        ------------------------------------------------               
  52.                 if( KEY2 == 0  )        //判断按键有没有按下
  53.                 {
  54.                         delay_ms(10);
  55.                         if( KEY2 == 0 )
  56.                         {
  57.                                 printf("按键P33已经按下\r\n");
  58.                                 P67 = 1;        //LED熄灭
  59.                         }
  60.                 }
  61.                 else
  62.                 {
  63.                         P67 = 0;        //LED熄灭
  64.                 }               
  65. void sys_init()                //函数定义
  66. {
  67.     WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
  68.     EAXFR = 1; //扩展寄存器(XFR)访问使能
  69.     CKCON = 0; //提高访问XRAM速度
  70.         P0M1 = 0x00;   P0M0 = 0x00;   //设置为准双向口
  71.     P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
  72.     P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
  73.     P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
  74.     P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
  75.     P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口
  76.     P6M1 = 0x00;   P6M0 = 0x00;   //设置为准双向口
  77.     P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
  78.        
  79.     P3M0 = 0x00;
  80.     P3M1 = 0x00;
  81.    
  82.     P3M0 &= ~0x03;
  83.     P3M1 |= 0x03;
  84.     //设置USB使用的时钟源
  85.     IRC48MCR = 0x80;    //使能内部48M高速IRC
  86.     while (!(IRC48MCR & 0x01));  //等待时钟稳定
  87.     USBCLK = 0x00;        //使用CDC功能需要使用这两行,HID功能禁用这两行。
  88.     USBCON = 0x90;
  89. }
  90. void delay_ms(u16 ms)        //unsigned int
  91. {
  92.         u16 i;
  93.         do
  94.         {
  95.                 i = MAIN_Fosc/6000;
  96.                 while(--i);
  97.         }while(--ms);
  98. }
复制代码
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-16 18:12 , Processed in 0.190796 second(s), 95 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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