zhange
发表于 2024-5-16 17:09:24
本帖最后由 zhange 于 2024-5-16 17:28 编辑
第二十二集:CDC串口通信
1.cdc的优势,我们一直使用的就是cdc
2. 第一次下载需要手动下载一次,以后就解放双手了。。
3.cdc可以去启动虚拟的数码管,12864屏等,等学完课程研究吧。。
zhange
发表于 2024-5-16 20:52:43
本帖最后由 zhange 于 2024-5-16 21:05 编辑
第二十三集:看门狗
1.系统复位
复位的主要作用是把单片机内部的特殊功能寄存器置于初始状态,使单片机硬件,软件从一个确定的,唯一的起点开始工作。
2.复位方式
上电复位-低压复位-复位脚复位-看门狗复位(做项目看门狗很重要)
3.看门狗
其实是一个计数器,基本功能,软件或单片机出问题后重启系统,让系统回到初始状态。
看门狗正常工作时会自动计数,程序进程会定时将其归零。
看门狗计数器清零俗称喂狗。
看门狗计数器是一个独立的计数器,不会死机。
溢出时间不要卡点,要多上一点。
4.以前老听说看门狗,今天老师一说茅塞顿开。。。。。谢谢冲哥
zhange
发表于 2024-5-17 20:02:08
本帖最后由 zhange 于 2024-5-18 05:52 编辑
第二十四集:比较器
1. 电压比较器:通过比较两个电压的大小,来及时相应一些工作。
2.比较器内部结构
3.模拟滤波可以过滤掉比较输入信号中的毛刺信号,数字滤波可以等待输入信号更加稳定后再进行比较。
4.比较器结果有三种输出查询方式:一:中断 二:比较结果直接寄存器查询三:直接端口输出结果
5.可以用比较器给我的8266加一个定时查询网络时间的功能。
zhange
发表于 2024-5-18 06:10:17
本帖最后由 zhange 于 2024-5-18 06:51 编辑
第二十五集:FLASH模拟EEPROM
1.flash 程序存储eeprom 掉电保持存储
flash 存储程序运行代码 eeprom存储用户数据
2.eeprom一次删除512字节 eeprom只能由一写为0,不能由0写1.
3.stc32 只能操作一个字节
4.eeprom最高只能是64k字节。
5.为啥老师擦出后读出来数码管显示8因为他的擦除应该是全部吧位改为1了 8个一0xff 数码管显示8
6.根据按照IEC命名标准 ,用于二进制存储单位的标准命名是KiB, MiB等,1kiB = 1024B。这是由数据流的二进制存储法决定的。64k并不是64000字节???? eeprom一次删除0.5k
zhange
发表于 2024-5-18 07:09:36
本帖最后由 zhange 于 2024-5-18 09:23 编辑
第二十六集:DS18B20温度传感器(单总线)理论分析
哇塞快学完了,,加油zhange
1.ds18b20 数字温度传感器体积小价格便宜 2.5搞定 我是降龙棍只能买
2.电容通交隔直
3.数值乘以精度就是温度了。默认12位精度。
4.单片机和18b20都有独一无二的编码,以后学习使用。。
5. 看得有点头大 ,二刷吧。。。
====二刷了====
6.外部电源供电更稳定。
zhange
发表于 2024-5-18 09:09:47
本帖最后由 zhange 于 2024-5-19 09:59 编辑
第二十六集:DS18B20温度传感器(单总线)代码实现
1.这课信息量有点大我消化消化 再来写{:titter:}
2.已经实现了stc32 循环扫描2个ds18b20看我其他帖子
zhange
发表于 2024-5-19 09:03:51
本帖最后由 zhange 于 2024-5-19 14:21 编辑
第二十七集:软件模拟SPI
1.spi另一个总线 同步串口
上节学的单总线(one-wire)只有一根数据线,系统中的数据交换、控制都由这根线完成。
2. 通信方式
[*]单主单从
[*]互为主从
[*]单主多从
3. 看了一遍看得不是很懂
====二刷吧====
4.这里是模拟的spi把,并不是硬件的。
5.产生时钟的一侧称为主机,另一侧从机。。
6.时钟极性和时钟相位共同控制spi的模式。
7.msb和lsb这里是软件模拟先发哪个都行。。。
8.写一个字节
//写一个字节
void spiXieByte(unsigned char i )
{
unsigned char q;
for(q = 0; q<8 ; q++)
{
if(i & 0x80)
{
MOSI = 1;
}else
{
MOSI = 0;
}
SCLK = 1;
SCLK = 0;
i = i<<1;
}
}9.读一个字节
//读一个字节
unsigned char spiDuByte(void)
{
unsigned char i;
unsigned char dat = 0;
SCLK = 0;
for(i=0; i<8; i++)
{
SCLK = 1;
dat = dat<<1;
if(MISO)
{
dat = dat|1;
}else
{
dat = dat|0;
}
SCLK = 0;
}
return dat;
}10.初始化
void spiInit(void)
{
CS = 1;
MISO = 1
WP = 1;
MOSI = 1
SCLK = 0;
}
最后:写程序成功
qike009
发表于 2024-5-19 09:54:46
先学冲哥?还是布丁好呀
zhange
发表于 2024-5-19 09:59:38
qike009 发表于 2024-5-19 09:54
先学冲哥?还是布丁好呀
学冲哥 申请个实验箱吧{:titter:}
zhange
发表于 2024-5-19 19:12:00
本帖最后由 zhange 于 2024-5-20 10:14 编辑
第二十八集:硬件SPI读写FLASH芯片
1.硬件spi:全双工,高速,同步串行总线
2.SPIF:接收、发送完成1字节,硬件置1.
3.使能spi必须放到最后。
4.使用宏选择硬件函数和软件函数
#if xuanze==0
//这里是软件模拟的函数代码
#else
//这里是硬件函数代码
#endif
这个老师以前使用过一次,没关注过,现在看蛮方便的。。。。
5.通信真的是单片机的精髓。好好学,二刷开启。。。。
====二刷版====
1.stc3212k128有三组spi
系统硬件spi usart1和usart2 的spi接口。。他们都能选择io口。
2.STC32G12K128 系列没有超时控制功能
3.软件模拟的时候没有DORD:SPI 数据位发送/接收的顺序
0:先发送/接收数据的高位(MSB)
1:先发送/接收数据的低位(LSB)
软件不设置,硬件必须设置,看读取的模块
4.接收数据时,接收到的数据传送到一个并行读数据缓冲区,这样将释放移位寄存器以进行下一个数据的接收。但必须在下个字符完全移入之前从数据寄存器中读出接收到的数据,否则,前一个接收数据将丢失。
5.疑问看图