找回密码
 立即注册
楼主: 想买车车

《8051U深度入门到32位51大型实战视频》 学习记录

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:109
  • 最近打卡:2025-06-24 16:35:26
已绑定手机

4

主题

112

回帖

902

积分

高级会员

积分
902
发表于 2024-12-9 22:12:14 | 显示全部楼层

第三集:新建工程

image.png

安装头文件

image.png

新建工程,选择AI8051

image.png

新建并添加main.c文件

image.png

勾选设置模式

image.png

生成HEX文件

image.png

添加头文件

image.png

更改配置

image.png

编写代码

image.png

编译完成。

image.png

结合手册与程序包就能完成后续实验。

image.png

上电默认高阻输入(新单片机,老的是这个准双向口)

这里我们可以通过
image.png

进行设置

image.png

完成电灯实验

祝大家少掉头发,身体健康,能够一个幸福的家
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:109
  • 最近打卡:2025-06-24 16:35:26
已绑定手机

4

主题

112

回帖

902

积分

高级会员

积分
902
发表于 2024-12-10 13:49:35 | 显示全部楼层

第四集:

第一部分:USB不停电下载

image.png

首先来讲传统的程序下载方式叫冷启动,需要我们将单片机断电后重上电才能实现新程序的下载,这一点来说的话确实会比较麻烦,但是以前呢由于个人经历这块就一直是这么用的,前面听到这个STC这个不停电下载也是比较心动,但是手里没有合适的物料,所以这一块也是没有尝试过。那么希望得到这个STC 这个AI试验箱好好用以用这个不停电下载。

结合视频指导不难发现:

image.png

如果试验箱在手的话,连接到电脑上我这边也应该和教程显示一致,首先是按照教程将这个USB这个代码下载进入我们的开发板,后面我们只需要编译好我们想要的程序直接就能进行烧录,这比以往的方式便捷便捷太多太多。

当然要使用上面的操作需要我们配合相应的库文件

image.png

进入官网,找到库函数

image.png

点击下载,并将其解压可以看到

image.png

可以发现里面有CDC和这个HID两种模板。这里是推荐了CDC模板

image.png

然后复制工程对其进行移植

image.png

添加到工程

image.png

头文件申明

image.png

全局查找可以发现,这个USB的库是被封装在库里面的我们是不能修改的。这个也保证了我们代码的安全性。对以后的移植也是有保证的。

image.png

将这个重要的东西放在这里。(直接复制)

image.png

当然我们也可以自由的对这个字段进行更改,变成我们想要的字段

image.png

在代码移植的时候上述内容就是关键。注意这个官方给的USB文件、然后定义东西不能丢,最后是这个我们USB这个下载用哪一种方式,是采用轮询的方式还是中断的方式,在这里冲哥讲轮询的方式是比较靠谱的,但是我前面有做项目就是他需要干的事情很多,事情多了之后就会非常影响效率,响应的速度,切换的快慢,所以个人感觉似乎中断里面会更好一点(个人感觉,实际情况可能要等以后拿到板子后加上层级菜单后看反应效果)

image.png

我们单片机很多这个拓展的一些寄存器需要访问,那我们就需要将上面这个切换引脚进行设置。

image.png

手册中可以查看USB中断结构,参考定时器可以理解。

image.png

对于警告57的类型,我们可以通过设置进行屏蔽,因为这一类的问题是因为我们封装的函数没有被调用所产生的。

祝大家少掉头发,身体健康,能够一个幸福的家
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:109
  • 最近打卡:2025-06-24 16:35:26
已绑定手机

4

主题

112

回帖

902

积分

高级会员

积分
902
发表于 2024-12-23 14:25:11 | 显示全部楼层

是不是我就快要可以得到箱子了

祝大家少掉头发,身体健康,能够一个幸福的家
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:109
  • 最近打卡:2025-06-24 16:35:26
已绑定手机

4

主题

112

回帖

902

积分

高级会员

积分
902
发表于 2024-12-25 13:38:29 | 显示全部楼层

第五集

组成部分:

1.利用串口实现printf函数

2.数的进制

3.数据基本类型

4.c语言常用运算符

首先是第一点:

在以往的单片机中常用的调试方式,;利用CH340将串口转USB利用上位机串口数据接收软件对单片机运行情况进行检测,对程序中所要完成的任务进行跟踪,所以这个手段对于设备的调试是非常重要的手段之一。以往的开发部分是自己根据经验封装编写一个printf函数、也有利用库函数调用。今天我们看到了另一种方式:USB库,通过对宏定义的注释,我们就能够将其进行调用。

image.png

实际上以往的方式也就是实现printf函数的一个重定向。那这里也是对printf函数原型进行讲解

image.png

他的函数原型,其实在linux系统上也能进行查看,通过指令查看原型。

之后对上节课USB使用不成功可以去查看哪些地方没做到位。

image.png这里的%s就是字符串的意思。

image.png这个虽然叫串口,但实际上是我们的这个USB在通信,所以波特率能够任意更改。

image.png这里将常用的格式字符进行讲解,并配有示例说明

image.png

这里讲解完毕后,将这个文本模式和HEX模式进行讲解。

第二点:进制相关

image.png

进制转换可以通过计算器自带的计算机进行计算。

变量类型:(我们最大可用到64位,但是需要添加一个小东西 定义一下)

image.png

第三点:C语言常用运算符

image.png

注意:
image.png

/是取整数部分 %是取余数部分

image.png示例讲解,乘法可能会超过本身的范围,这里就用了强制转化为16位变量。

image.png

关系运算符,判断相等。不等大于小于等

image.png

逻辑运算符号

image.png

赋值运算符号

image.png

位运算符号

最后是对本节课内容的回顾,讲解这个溢出的概念。对逻辑符号进行再次回顾。

祝大家少掉头发,身体健康,能够一个幸福的家
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:109
  • 最近打卡:2025-06-24 16:35:26
已绑定手机

4

主题

112

回帖

902

积分

高级会员

积分
902
发表于 2024-12-26 13:35:42 | 显示全部楼层

第六集:I/O口输入输出

什么是GPIO:就是我们引脚的逻辑1或者0.

image.png

注意看这个对地电压,这就是标准,不要超过我们的表中数据给出的电压,超过这个值很容易弄坏板子。

I/O输出模式分为4种

1.准双向口/弱上拉(老一代的开发板上电默认状态)电流是uA级别

image.png

2.推挽输出这个驱动电流能到20mA

image.png

image.png

3.高阻输入(新板子默认上电状态)

image.png

4.开漏模式

image.png

课件中有一个表格就说明了很多东西,在我们配置时千万注意。

image.png

接下来通过输入按钮检测这样一个示例来说明。同时也是结合上节课的部分逻辑判断符进行教学。

因为手里没有这个AI这个试验箱,那我就用8H的一块板子实验。

image.png

同时我这里使用了触摸按键对其进行控制

image.png

上面就是目前项目适用的部分代码,加入了消除抖动的东西儿。因为涉及任务毕竟较多,所以很多地方尽量不使用这个Delay延时,这样对其余代码运行的干扰也会减少很多。

祝大家少掉头发,身体健康,能够一个幸福的家
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:109
  • 最近打卡:2025-06-24 16:35:26
已绑定手机

4

主题

112

回帖

902

积分

高级会员

积分
902
发表于 2024-12-27 14:26:54 | 显示全部楼层

第七集 定时器中断

我们都清楚地知道,程序是一行一行往下顺序执行(在没有中断介入的情况下),那为了满足我们各种各样的需求,也同样为了让我们CPU更加合理的运用,那引入中断将其按照我们预设情况去执行相应代码这个就是非常有必要的。这样也是比较符合我们预期的。

中断的存在,就像我们的Switch函数一样,根据我们不同的条件她给我们干不同的活,也不会让他一直等我们,而是根据预设情况去处理和反应,就像是一个“人”能够帮我们处理各种情况。这样也就有机会实现和外围设备进行交互。

过往很多时候这个定时器配置需要使用计算机进行计算,但是目前好在STC推出了自动配置工具我们只需要更具需求进行配置就能够满足需求

image.png

合理配置后就能得到我们需要的定时器,记住勾选定时器中断,我们就可以通过中断去干活。

其实这里的话稍微需要注意的就是我们选择的定时器模式,不同模式有一定的差异,这个需要更具自身情况进行选择

image.png

同样的我们手册对其也有讲解,如何配置寄存器:

image.png

再接着讲解我们函数基础知识讲解:

image.png

介绍函数名,变量等一些需要注意的事项。完毕

祝大家少掉头发,身体健康,能够一个幸福的家
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:109
  • 最近打卡:2025-06-24 16:35:26
已绑定手机

4

主题

112

回帖

902

积分

高级会员

积分
902
发表于 2024-12-30 09:05:50 | 显示全部楼层

已经收到咯哟,哈哈哈很漂亮的哟

祝大家少掉头发,身体健康,能够一个幸福的家
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:109
  • 最近打卡:2025-06-24 16:35:26
已绑定手机

4

主题

112

回帖

902

积分

高级会员

积分
902
发表于 2025-1-3 16:40:31 | 显示全部楼层

真奇怪,用AHT21的时候,用开漏输出还不能采集到数据,非要用推挽输出才可以

祝大家少掉头发,身体健康,能够一个幸福的家
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:109
  • 最近打卡:2025-06-24 16:35:26
已绑定手机

4

主题

112

回帖

902

积分

高级会员

积分
902
发表于 2025-1-3 16:41:40 | 显示全部楼层

不是AHT21,是CJHT21,板子是不是这个AI8051u这个板子哈。

祝大家少掉头发,身体健康,能够一个幸福的家
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-7-1 05:50 , Processed in 0.124198 second(s), 96 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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