找回密码
 立即注册
楼主: YaoHuaYa

STC32G单片机学习心得

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2024-12-08 20:33:29
已绑定手机

1

主题

14

回帖

49

积分

新手上路

积分
49
发表于 2024-6-22 17:31:50 | 显示全部楼层
STC32位8051单片机原理及C语言程序设计课程打卡:
好像之前发的没发出去,重新发一下
2024/06/22 大概是凌晨2点左右
看了第3集,他大概说了7个分别是
1.下载stc-isp,我目前打算直接通过官网上下载。是在官网里面的软件工具里面的工具软件,工具软件里面就可以找到这款软件。
2.讲了STC32数据手册的下载跟第1个是一样的,也是在官网下载在官网上的芯片手册里面的stc32系列,不过不一定一定是stc32系列要找到你对应的芯片进行下载。
3.是讲的pdf阅读器的下载,我目前已经有了wps所以不需要下载pdf的阅读器。作者这边推荐的是福听阅读器。
4.是讲pdf阅读器的查阅手册,我大概已经知道了,比如说Ctrl+f是查阅相关的关键字来找在快速的找到。比如书签、目录的查找等等
5.是跟着手册搭建c251的开发环境,主要讲了安装keil软件之后去安装c251的插件,应该是插件。
6.是程序包的下载跟第1个和第2个是一样的,去官方网站下载,具体的位置是在软件工具里面的实验箱,找到对应的芯片名字进行下载即可。
7.是第1个工程的编译和下载,首先把上一步的程序包解压下来,就可以看到很多的视力工程,然后打开比如说跑马灯工程,然后因为这是第1次安装,所以打开之后应该是会报错的。然后解决方法是在最开始stc-isp软件上去安装头文件,这个时候再次打开工程,就不会有什么问题了,然后进行编译,下列出现0报错0警告即可。软件上解决了,就进行硬件上的硬件上,首先要进入一个下载模式,下载模式大概就是要在断电的情况下按下p3.2的按钮。然后进行开机连接电脑,这个时候stc杠isp软件就会识别这个芯片前提条件是你已经在这个软件上已经选择好了相对应的芯片。然后导入我们刚刚编译的程序里面后缀是.hex的文件进行下载。这里还有一个点硬件上刚开机之后左下角会亮两个灯,这个时候是正常的。因为采用的实验箱,其他的可能会有其他不同的形式。如果不是的话,就要排查一下故障,然后下载会让我们选频率频率我们这边选的是24兆赫兹。因为程序上是设置24兆赫兹。
点击下载之后下载就完成了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2024-12-08 20:33:29
已绑定手机

1

主题

14

回帖

49

积分

新手上路

积分
49
发表于 2024-6-22 18:42:11 | 显示全部楼层
本帖最后由 YaoHuaYa 于 2024-6-22 20:07 编辑

STC32位8051单片机原理及C语言程序设计课程打卡:
2024/06/22 18.41
看了第5集大概演示了printf函数的使用
引用上一集的程序基础上添加了如下代码
        if((DeviceState!= DEVSTATE_CONFIGURED)//判断USB是否连接成功
                continue;   
      
        if(bUsbOutReady)   //是否接受到数据      
{
usb_OUT_done();
print("Hello World");//打印出Hello World

        }
大概意思就是说单片机判断usb是否有连接,如果有,那么进行下一步判断是否有发送数据给单片机,如果有就发送Hello World
然后程序编译下载后,打开STC-ISP发现是一串ASII数据,是因为打开了HEX,要打开文本就可以显示Hello World,然后介绍了比如/r/n的作用(回车换行)比如%d意思是十进制整数输出等等
然后向我们解释前几节说了个0x00是什么意思,0x00是16进制的数,需要用电脑计算机进行转化2进制就是0000 0000,简单介绍了2进制/10进制/16进制如何转换,怎么来的
介绍了加减乘除的使用以及运算符、数据的基本类型和数据的范围
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2024-12-08 20:33:29
已绑定手机

1

主题

14

回帖

49

积分

新手上路

积分
49
发表于 2024-6-22 20:59:14 | 显示全部楼层
本帖最后由 YaoHuaYa 于 2024-6-22 21:33 编辑

STC32位8051单片机原理及C语言程序设计课程打卡:
2024/06/22 20.59
看了第6集大概了解了delay以及do while/while的使用
首先要了解1秒=1000毫秒(ms)=1000000微秒(us)
#define MAIN_Fosc 24000000IL//定义一个IRC系统时钟,24MHZ,软件上也要设置24MHZ
void deay_ms(u16 ma)//unsigend int
{
u16 i;
do
{
i=MAIN_Dose/6000; //
while(--i);
}
while(--ms);
}


int a=10;
do
{
printf(“a的值:%d\n”a);
}while(a<20);
while(a<20)
{
printf(“a的值:%d\n”a);
a++
}
a--  先减后输出结果
--a  先输出结果后减
延迟的思路大概是要定义一个IRC的时钟频率,比如设置晶振是10mhz的意思是1秒有10mhz的震动(或者电信号)基于这个,还要了解--a以及a-- ,--a是先输出结果后减把晶振的频率除6000就是毫秒了应该是这么个意思,然后就可以用delay函数进行延迟了(这个也是大概延迟)然后就可以实现led亮灭的操作了,然后就是while以及do while 不过while用的比较多
补充一下2024/06/2
要进行函数的使用要进行3步走 分别是返回值(要是没有返回值就写void)、函数名称、入口参数(类型加名称)
然后学习模块化的编程,要新建一个xxx.h和一个.c的文件
也是三步走 先定义、在调用、最后声明
需要注意的是在.h要定义
参考如下
#ifdef_xxx_H
#define_xxx_h

#endif

同样道理.c要声明
参考如下
#indude"xxx.h.22"
大概就是这些内容了,如果有错误希望帮我指正,谢谢谢谢


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2024-12-08 20:33:29
已绑定手机

1

主题

14

回帖

49

积分

新手上路

积分
49
发表于 2024-6-22 21:34:15 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2024-12-08 20:33:29
已绑定手机

1

主题

14

回帖

49

积分

新手上路

积分
49
发表于 2024-6-30 15:19:39 | 显示全部楼层
今天更新一下,买了一个芯片然后搭建了keil环境什么的,可以实现了跑马灯的实验,自己对照写了一下也可以使用
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-9 04:12 , Processed in 0.109851 second(s), 68 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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