找回密码
 立即注册
查看: 1996|回复: 15

STC32G跟着冲哥学习打卡篇:(1~14)矩阵按键和密码锁

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:352
  • 最近打卡:2025-05-06 09:32:58
已绑定手机

31

主题

113

回帖

1686

积分

荣誉版主

Rbowlystar

积分
1686
发表于 2023-11-30 14:10:56 | 显示全部楼层 |阅读模式
本帖最后由 四汐 于 2023-12-18 00:12 编辑

STC32G跟着冲哥学习打卡篇:(1)认识单片机和环境搭建
今天是第一次学习STC32G的芯片:

搭建好keil的A251环境啦。




回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:352
  • 最近打卡:2025-05-06 09:32:58
已绑定手机

31

主题

113

回帖

1686

积分

荣誉版主

Rbowlystar

积分
1686
发表于 2023-11-30 14:13:42 | 显示全部楼层

学会上传图片了哈哈哈哈

本帖最后由 四汐 于 2023-11-30 14:23 编辑

f6e8dfa3f357780343ae2c0f9b98077.png file:///D:/Tencent/%E5%BE%AE%E4%BF%A1%E6%96%87%E4%BB%B6/WeChat%20Files/wxid_jy7fabioas9k22/FileStorage/Temp/f6e8dfa3f357780343ae2c0f9b98077.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:394
  • 最近打卡:2025-05-06 07:53:41

45

主题

381

回帖

1587

积分

金牌会员

静坐常思己过,闲谈莫论人非

积分
1587
发表于 2023-11-30 19:37:54 | 显示全部楼层
加油,争取能申请到实验箱
处事要代人所想,读书需切己用功
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:352
  • 最近打卡:2025-05-06 09:32:58
已绑定手机

31

主题

113

回帖

1686

积分

荣誉版主

Rbowlystar

积分
1686
发表于 2023-12-1 00:29:24 | 显示全部楼层
reng*** 发表于 2023-11-30 19:37
加油,争取能申请到实验箱

加油!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:352
  • 最近打卡:2025-05-06 09:32:58
已绑定手机

31

主题

113

回帖

1686

积分

荣誉版主

Rbowlystar

积分
1686
发表于 2023-12-1 00:34:51 | 显示全部楼层

STC32G跟着冲哥学习打卡篇:(2)LED灯

本帖最后由 四汐 于 2023-12-1 00:35 编辑

今天是第二天
     刚看完,《点亮一个LED灯实验》
       又学了一个新知识!
震惊!!!!竟然可以不用头文件,就直接编写程序!!

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:352
  • 最近打卡:2025-05-06 09:32:58
已绑定手机

31

主题

113

回帖

1686

积分

荣誉版主

Rbowlystar

积分
1686
发表于 2023-12-1 14:11:40 | 显示全部楼层
STC32G跟着冲哥学习打卡篇:(4)点亮LED下
介绍了如何使用USB-CDC\HID不断电下载的方法
今后可以尝试制作一个头文件,每次建立新工程的时候,只需要引用曾经编写好的USB下载子程序就可以了


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:352
  • 最近打卡:2025-05-06 09:32:58
已绑定手机

31

主题

113

回帖

1686

积分

荣誉版主

Rbowlystar

积分
1686
发表于 2023-12-1 15:02:57 | 显示全部楼层
STC32G跟着冲哥学习打卡篇:(5)C语言部分
5-1:通过USB打印一串字符,“显示温湿度信息”。

5-1:2进制-10进制-16进制,互相转化。
5-2:
转义字符:
转义字符.png
格式字符:
转义字符2.png

1.d格式字符
功能:用来输出十进制数
格式:%d:按整型数据的实际长度输出
%md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补一空格;若大于m,则按实际位数输出。
%ld:输出长整型数据。

2.o格式字符
功能:以八进制形式输出整数;
格式:%o:按整型数据的实际长度输出
%mo:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补一空格;若大于m,则按实际位数输出。
%lo:输出长整型数据。

3.x格式字符
功能:以十六进制形式输出整数
格式:%x:按整型数据的实际长度输出
%mx:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补一空格;若大于m,则按实际位数输出。
%lx:输出长整型数据。

4.u格式字符
功能:以十进制数输出无符号整数
格式:%u:按整型数据的实际长度输出
%mu:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补一空格;若大于m,则按实际位数输出。
%lu:输出长整型数据。

5.c格式字符**
功能:输出单个字符
格式:%c:按整型数据的实际长度输出
%mc:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补一空格;若大于m,则按实际位数输出。
%lc:输出长整型数据。

6.s格式字符
功能:输出字符串
格式:%s:按整型数据的实际长度输出
%ms:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补一空格;若大于m,则按实际位数输出。
%ls:输出长整型数据。

7.f格式字符
功能:以小数形式输出单、双精度实数
格式:%f:按整型数据的实际长度输出
%mf:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补一空格;若大于m,则按实际位数输出。
%lf:输出长整型数据。

8.e格式字符
功能:以指数形式输出单、双精度实数
格式:%e:按整型数据的实际长度输出
%me:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补一空格;若大于m,则按实际位数输出。
%le:输出长整型数据。

9.g格式字符
功能:以%f、%e中较短的输出宽度输出单、双精度实数
格式:%g:按整型数据的实际长度输出
%mg:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补一空格;若大于m,则按实际位数输出。
%lg:输出长整型数据。


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:352
  • 最近打卡:2025-05-06 09:32:58
已绑定手机

31

主题

113

回帖

1686

积分

荣誉版主

Rbowlystar

积分
1686
发表于 2023-12-2 13:21:50 | 显示全部楼层
打卡:今天学习一下C语言中的指针

看到USB_HID下载方式,使用到了指针:
  1. <div style="background-color: rgb(40, 42, 54); line-height: 22px; white-space: pre; font-size: 16px; font-family: Consolas, &quot;Courier New&quot;, monospace; color: rgb(248, 248, 242);">
  2. <div><div style="line-height: 22px;">
  3. <div><span style="color: #ff79c6;">#include</span> <span style="color: #e9f284;">"</span><span style="color: #f1fa8c;">COMM/STC32G.H</span><span style="color: #e9f284;">"</span>
  4. <span style="color: #ff79c6;">#include</span> <span style="color: #e9f284;">"</span><span style="color: #f1fa8c;">COMM/stc32_stc8_usb.h</span><span style="color: #e9f284;">"</span>
  5. <span style="color: #ff79c6;">#define</span> <span style="color: #50fa7b;">MAIN_Fosc</span> <span style="color: #bd93f9;">24000000</span><span style="color: #ff79c6;">UL</span><span style="color: #6272a4;">    //定义主时钟评率</span>
  6. <span style="color: #6272a4;">
  7. </span></div></div>
  8. <span style="color: #6272a4;">// USB调试及复位所需定义</span>
  9. <span style="color: #ff79c6;">char</span> <span style="color: #ff79c6;">*</span>USER_DEVICEDESC <span style="color: #ff79c6;">=</span> <span style="color: #50fa7b;">NULL</span>;
  10. <span style="color: #ff79c6;">char</span> <span style="color: #ff79c6;">*</span>USER_PRODUCTDESC <span style="color: #ff79c6;">=</span> <span style="color: #50fa7b;">NULL</span>;
  11. <span style="color: #ff79c6;">char</span> <span style="color: #ff79c6;">*</span>USER_STCISPCMD <span style="color: #ff79c6;">=</span> <span style="color: #e9f284;">"</span><span style="color: #f1fa8c;">@STCISP#</span><span style="color: #e9f284;">"</span>;<span style="color: #6272a4;"> // 设置自动复位到ISP区的用户接口命令</span>
  12. <span style="color: #6272a4;">
  13. </span>
  14. <div style="line-height: 22px;">
  15. <div><span style="color: #ff79c6;">void</span> <span style="color: #50fa7b;">sys_init</span>()
  16. {
  17.     WTST <span style="color: #ff79c6;">=</span> <span style="color: #bd93f9;">0</span>;<span style="color: #6272a4;">  // 设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快</span>
  18.     EAXFR <span style="color: #ff79c6;">=</span> <span style="color: #bd93f9;">1</span>;<span style="color: #6272a4;"> // 扩展寄存器(XFR)访问使能</span>
  19.     CKCON <span style="color: #ff79c6;">=</span> <span style="color: #bd93f9;">0</span>;<span style="color: #6272a4;"> // 提高访问XRAM速度</span>
  20.     P0M1 <span style="color: #ff79c6;">=</span> <span style="color: #ff79c6;">0x</span><span style="color: #bd93f9;">30</span>;
  21.     P0M0 <span style="color: #ff79c6;">=</span> <span style="color: #ff79c6;">0x</span><span style="color: #bd93f9;">30</span>;<span style="color: #6272a4;"> // 设置P0.4、P0.5为漏极开路(实验箱加了上拉电阻到3.3V)</span>
  22.     P1M1 <span style="color: #ff79c6;">=</span> <span style="color: #ff79c6;">0x</span><span style="color: #bd93f9;">32</span>;
  23.     P1M0 <span style="color: #ff79c6;">=</span> <span style="color: #ff79c6;">0x</span><span style="color: #bd93f9;">32</span>;<span style="color: #6272a4;"> // 设置P1.1、P1.4、P1.5为漏极开路(实验箱加了上拉电阻到3.3V), P1.1在PWM当DAC电路通过电阻串联到P2.3</span>
  24.     P2M1 <span style="color: #ff79c6;">=</span> <span style="color: #ff79c6;">0x</span><span style="color: #bd93f9;">3c</span>;
  25.     P2M0 <span style="color: #ff79c6;">=</span> <span style="color: #ff79c6;">0x</span><span style="color: #bd93f9;">3c</span>;<span style="color: #6272a4;"> // 设置P2.2~P2.5为漏极开路(实验箱加了上拉电阻到3.3V),设置开漏模式需要断开PWM当DAC电路中的R2电阻</span>
  26.     P3M1 <span style="color: #ff79c6;">=</span> <span style="color: #ff79c6;">0x</span><span style="color: #bd93f9;">50</span>;
  27.     P3M0 <span style="color: #ff79c6;">=</span> <span style="color: #ff79c6;">0x</span><span style="color: #bd93f9;">50</span>;<span style="color: #6272a4;"> // 设置P3.4、P3.6为漏极开路(实验箱加了上拉电阻到3.3V)</span>
  28.     P4M1 <span style="color: #ff79c6;">=</span> <span style="color: #ff79c6;">0x</span><span style="color: #bd93f9;">3c</span>;
  29.     P4M0 <span style="color: #ff79c6;">=</span> <span style="color: #ff79c6;">0x</span><span style="color: #bd93f9;">3c</span>;<span style="color: #6272a4;"> // 设置P4.2~P4.5为漏极开路(实验箱加了上拉电阻到3.3V)</span>
  30.     P5M1 <span style="color: #ff79c6;">=</span> <span style="color: #ff79c6;">0x</span><span style="color: #bd93f9;">0c</span>;
  31.     P5M0 <span style="color: #ff79c6;">=</span> <span style="color: #ff79c6;">0x</span><span style="color: #bd93f9;">0c</span>;<span style="color: #6272a4;"> // 设置P5.2、P5.3为漏极开路(实验箱加了上拉电阻到3.3V)</span>
  32.     P6M1 <span style="color: #ff79c6;">=</span> <span style="color: #ff79c6;">0x</span><span style="color: #bd93f9;">ff</span>;
  33.     P6M0 <span style="color: #ff79c6;">=</span> <span style="color: #ff79c6;">0x</span><span style="color: #bd93f9;">ff</span>;<span style="color: #6272a4;"> // 设置为漏极开路(实验箱加了上拉电阻到3.3V)</span>
  34.     P7M1 <span style="color: #ff79c6;">=</span> <span style="color: #ff79c6;">0x</span><span style="color: #bd93f9;">00</span>;
  35.     P7M0 <span style="color: #ff79c6;">=</span> <span style="color: #ff79c6;">0x</span><span style="color: #bd93f9;">00</span>;<span style="color: #6272a4;"> // 设置为准双向口</span>
  36. }</div>
  37. </div>
  38. <span style="color: #6272a4;">
  39. </span>
  40. <div style="line-height: 22px;">
  41. <div><span style="color: #ff79c6;">void</span> <span style="color: #50fa7b;">main</span>()
  42. {
  43. <div style="line-height: 22px;">    <span style="color: #50fa7b;">sys_init</span>();</div>
  44.     <span style="color: #50fa7b;">usb_init</span>();
  45.     EA <span style="color: #ff79c6;">=</span> <span style="color: #bd93f9;">1</span>;
  46.    
  47. }</div>
  48. </div></div></div>
复制代码
然后不是很懂指针是什么东西,就打算学习一下指针先,嘿嘿


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:352
  • 最近打卡:2025-05-06 09:32:58
已绑定手机

31

主题

113

回帖

1686

积分

荣誉版主

Rbowlystar

积分
1686
发表于 2023-12-2 19:57:13 | 显示全部楼层
本帖最后由 四汐 于 2023-12-2 20:01 编辑

STC32G跟着冲哥学习打卡篇:(6)LED闪烁

  1. #define MAIN_Fosc 24000000UL  //定义主时钟频率
复制代码

- - a;//先运算再输出值
a - -;//先输出值再运算

关于宏定义:
#define 名称 需要宏定义的内容
typedef 需要宏定义的内容 名称


#define MAIN_Fosc 24000000UL //将“MAIN_Fosc”宏定义为“24000000UL
typedef unsigned int u16   //将“u16”宏定义为“unsigned int



模块化编程:
void 函数名()
{
内容;
}
int 函数名()
{
int 变量;
内容;
return 变量;//返回一个值int
}

头文件编写:
  1. #ifndef   __NAME_H__    //判断该头文件名未被定义过,那么就可以使用
复制代码

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:352
  • 最近打卡:2025-05-06 09:32:58
已绑定手机

31

主题

113

回帖

1686

积分

荣誉版主

Rbowlystar

积分
1686
发表于 2023-12-2 23:54:41 | 显示全部楼层
STC32G跟着冲哥学习打卡篇:(7)按键点灯


1.按键消抖
if (key == 0)
{
delay_ms(20);
if(key ==0)
{
   内容;
}
}

2.按键控制LED亮灭

if (key == 0)
{
delay_ms(20);
if(key ==0)
{
   while(key == 0);//松开开关才执行,并且只执行一次
   内容;
   while(key ==0);//按下开关就执行,并且只执行一次
}
}


3.按键控制LED灯左右移动
看了冲哥的视频,感觉有点繁琐。
因为想到以前用到的一个指令“_crol_()”【左移一位】和“_cror_()”【右移一位】,因为我是在89C52上用的,感觉32G的应该也可以用哈哈哈哈
回复 支持 1 反对 0

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-6 19:01 , Processed in 0.129498 second(s), 106 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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