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

嵌入式老鸟回炉再造打卡帖(STC32位8051单片机学习)

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2024-04-27 10:57:40

0

主题

6

回帖

30

积分

新手上路

积分
30
发表于 2024-4-24 22:13:18 来自手机 | 显示全部楼层
haishi28 发表于 2024-4-24 11:02
好问题!
当然有了板子,一边看,一边实验,会比较好。
但免费送,总要有些门槛吧,可以理解。而且,先纸 ...

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:82
  • 最近打卡:2024-11-16 13:05:25

10

主题

103

回帖

460

积分

中级会员

积分
460
发表于 2024-4-25 06:52:36 来自手机 | 显示全部楼层
本帖最后由 haishi28 于 2024-5-12 18:18 编辑

第二十一集 串口应用
提到两个点,比较有用。
1. TxD,TxD2,TxD_2他们之间的关系
2. sprintf函数

问题1
TxD,TxD2分别是串口1,串口2,见下图

截图202404270941413209.jpg

TxD,TxD_2分别是串口1的第一组TxD引脚,第二组TxD引脚,见下图

截图202404270944533484.jpg 截图202404270948082872.jpg

总结:下划线前数字代表串口号,下划线后数字代表第几组PIN脚。数字1会被省略,因此TxD可以理解成TxD1_1,即串口1的第一组引脚。

问题2
从csdn上摘录了一段

sprintf和printf都是C语言中用于输出字符串的函数,但它们之间存在一些重要的区别。

函数原型:printf的函数原型是int printf(const char *format, ...);,它返回的是输出的字符数量。而sprintf的函数原型是int sprintf(char *str, const char *format, ...);,它返回的是被写入到字符串str中的字符数量。
用途:printf通常用于直接在控制台上打印输出,而sprintf通常用于将格式化的数据保存到一个字符串中。
参数:printf接受不定数量的参数,而sprintf接受一个额外的参数,即用于保存输出结果的字符串的指针。
内存管理:printf不需要管理内存,因为它直接在控制台上输出。而sprintf需要管理内存,因为它将输出保存到一个字符串中。
错误处理:如果sprintf的第一个参数(即目标字符串)不是以空字符结尾的数组或者是不够大的数组,那么它将可能会导致缓冲区溢出,这是一个严重的安全问题。因此,使用sprintf时需要特别注意确保目标字符串足够大并且是以空字符结尾的。
可移植性:由于sprintf可能会导致缓冲区溢出,因此它的行为在不同的系统和编译器之间可能会有所不同,这使得它的可移植性较差。相比之下,printf的行为在不同的系统和编译器之间是一致的,因此它的可移植性较好。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/m0_74956598/article/details/134808074



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:82
  • 最近打卡:2024-11-16 13:05:25

10

主题

103

回帖

460

积分

中级会员

积分
460
发表于 2024-4-30 13:35:23 来自手机 | 显示全部楼层
本帖最后由 haishi28 于 2024-5-12 18:18 编辑

第二十二集 CDC串口通信
官方的lib库,很方便。只是有一个疑问,会额外占用多少资源,有没有官方数据?
IMG_20240430_133710.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:82
  • 最近打卡:2024-11-16 13:05:25

10

主题

103

回帖

460

积分

中级会员

积分
460
发表于 2024-5-12 18:50:48 | 显示全部楼层
本帖最后由 haishi28 于 2024-5-17 02:28 编辑

第二十三集 看门狗
看门狗,在软件异常后,可以进行补救,重启系统,减少影响。一般我在开发阶段,是不使能看门狗的,方便暴露软件问题。
看门狗只是亡羊补牢的做法,你肯定不希望自己的软件看门狗经常起作用。
一般,系统启动后,会检测一下是什么原因导致的系统复位,如果是看门狗,那就需要进行一些处理,比如记录一下log。
手册里示例比较简单,但跟其他功能一起用时,就出现了视频中的问题(与USB-CDC一起使用)。
视频里只是给出了解决办法,但好像没有给出解释。
截图202405121904361574.jpg

翻了一下手册,从手册里USB-CDC不断电下载的描述上看,应该是USB-CDC的库代码实现了以下功能:
接收到“@STCISP#”后,会将MCU复位,进入ISP下载区,从而实现不断电,自动下载。
但貌似视频中出现了看门狗复位无法使软件顺利重新运行,是也进入ISP下载区了吗?
截图202405121859514313.jpg
截图202405121905395339.jpg
截图202405121907535799.jpg
从最后两个截图看,是关闭了USB相关功能,那USB-CDC功能呢,还正常吗? 实验验证了,正常。
截图202405121915362017.jpg
查看了RSTFLAG的描述,里面关于SWRSTF的描述如上图,我的疑问是,USB-ISP下载的动作是在用户代码执行之后,那是下一次启动时,用户代码起作用?
看来看去,也没理解这之间的关联。
USB-ISP进入后,检查SWRSTF是否为1,如果是1,则直接等待程序烧写。
那看门狗复位,跟SWRSTF也没关系啊,为啥会需要RSTFLAG |= 0x04这句呢?视频里说了,实验也验证了,不需要这句。
截图202405121926449295.jpg

为了看门狗起作用,为什么要禁用USB呢?




回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:399
  • 最近打卡:2025-05-08 06:10:29
已绑定手机

17

主题

137

回帖

1547

积分

金牌会员

积分
1547
发表于 2024-5-13 16:06:17 来自手机 | 显示全部楼层
学习的真透澈
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:82
  • 最近打卡:2024-11-16 13:05:25

10

主题

103

回帖

460

积分

中级会员

积分
460
发表于 2024-5-17 13:32:10 | 显示全部楼层
本帖最后由 haishi28 于 2024-5-17 13:34 编辑

第二十四集 比较器
内置比较器,功能很贴心,可以方便进行电压判断,常用传感器提供电压信号,利用外围电路分压对其进行阈值判断,避免了ADC转换,相应的滤波和防抖也都考虑了。
例如手册中的例子:
截图202405171334144388.jpg
CHYS的配置,手册上写的介绍是:DC迟滞输入选择,理解起来不太通俗。
视频中讲解的是电压向下波动时,有一个设定的差值,作为deadband,下降到设定的阈值-Vchys的时候,才会触发新的比较结果的产生。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:82
  • 最近打卡:2024-11-16 13:05:25

10

主题

103

回帖

460

积分

中级会员

积分
460
发表于 2024-5-18 14:39:41 | 显示全部楼层

第二十五集:FLASH模拟EEPROM
标题很明确的说明了,是通过FLASH模拟EEPROM,因此就出现了整页擦除的要求,因为本质上是FLASH。
对于掉电不丢失的数据,这是最简单的方式。
掉电保存,一定是需要有供电电压检测电路才行,结合上一集的比较器,可以快速实现掉电保存。




回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:82
  • 最近打卡:2024-11-16 13:05:25

10

主题

103

回帖

460

积分

中级会员

积分
460
发表于 2024-5-22 07:00:01 | 显示全部楼层
本帖最后由 haishi28 于 2024-6-3 13:01 编辑

第二十六集 DS18B20温度传感器(单总线)


这个芯片没用过,重点就是学习一下这个芯片的控制。
感觉整个过程应该都是对单片机的一个管脚进行读写,进而完成对传感器的所有操作。
下面通过截图解释几个重点内容:

寄生电源
截图202405220643401912.jpg
手册里这样写:
截图202405220650216851.jpg


截图202405220652589738.jpg
我们开发板也是用的直接VDD供电,简单稳定。

但下面这段没理解,MCU在不知道是什么供电的情况下,怎么提供强上拉呢?它控制什么来提供强上拉呢?
截图202405220658107446.jpg


附件是DS18B20的手册,供大家参考。

课后习题里的3,是个值得研究的话题。标记一下。
IMG_20240603_125753.jpg

DS18B20传感器手册.pdf

6.21 MB, 下载次数: 75

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:82
  • 最近打卡:2024-11-16 13:05:25

10

主题

103

回帖

460

积分

中级会员

积分
460
发表于 2024-7-3 14:19:29 来自手机 | 显示全部楼层
第二十七集 软件模拟SPI
主要是理解SPI通信协议,包括四种模式。
有个疑问,就是视频里没有加暂时,也就是利用代码执行的时间来保证时钟信号,这样有潜在的风险吧?
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-9 03:14 , Processed in 0.120459 second(s), 99 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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