严西湖里的鱼
发表于 2024-11-14 10:08:24
第十九课终于要讲如何使用了,现在对这个串口通讯理解还是有限。首先开始波特率的设定,串口1经常使用的是模式1和模式3(少),不容许产生中断。在应用时一般是采用中断方式进行串行通信,数据大采用DMA方式。串口2工作要点:1、设置工作模式S2CON.S2SM0位,需接收S2REN置1。2、设置波特率。其只能使用T2做波特率发生器,TH2 TL2 T2_C/T T2X12 TR2位。3、设置中断优先级PS2,打开相应中断(ES2 EA)。4、要发送即将数据输入S2BUF。5、编制中断服务程序,程序中要消除中断标志(S2RI S2TI)。在发送数据的过程是需要时间的,不是写入S2BUF就可以完成通信,所以用中断比较好。后续以汇编和C语言的方式讲了发送与接收的实际例子。在多机通信的实际例子更能加深对串行通信的功能的了解。后面将程序在实验箱上跑了一下,没有箱子去学感觉难度还是挺大的。
hande5
发表于 2024-11-14 10:43:34
加油
严西湖里的鱼
发表于 2024-11-14 22:05:53
感谢楼上朋友鼓励!为啥现在被禁止了?不明白,早上还是正常的。
开始看《梁工补充ModBus从入门到实战》,ModBus是通用性极强的标准通讯协议,一般采用rtu方式传送数据,采用一主多从的控制方式。在主从查询回应周期表中对运行原理进行了讲解。RTU模式编码采用十六进制,在项目中数据由1个起始位 8位数据 无校验位 1位停止位组成。校验域采用CRC16,结束符是3.5个字节空闲时间以上。以写多寄存器的例子讲解帧内数据的格式,包括:地址(1字节) 功能码(1字节) 寄存地址(2字节) 寄存器个数(2字节) 写入字节数(1字节) 写入数据(2*n n是前一位写入字节数的数值) 校验码(2字节 CRC16)。从机正常返回则是:地址(1字节) 功能码(1字节) 寄存地址(2字节) 寄存器个数(2字节) 校验码(2字节 CRC16)。从机异常返回则是:地址(1字节) 错误码(1字节) 校验码(2字节 CRC16)。485信号用双绞线可以更好的减少干扰。后续通过C语言的源代码进行实际程序编写与运行,这些程序模块可以自己今后直接用{:smile:}。
地址:https://www.stcaimcu.com/forum.php?mod=viewthread&tid=375&extra=page%3D1
真正使用还是用DMA,看上去DMA这个概念还是很重要,要搞懂。
bh7ni
发表于 2024-11-14 22:29:01
加油!
严西湖里的鱼
发表于 2024-11-15 11:44:57
感谢!现在越来越多的朋友来了。
这次学习《陈工补充串口库函数应用》的视频。首先介绍了几种从不同渠道获得库函数例子程序包的渠道,然后安装。这个例程以C语言的方式进行的编写,陈工将每行进行详细的讲解。队列模式对缓冲区大小是有要求的,如果要求速率不高可以用阻塞模式。虽然视频没有讲,但是根据网上查询的到定义“串口阻塞模式是指在数据传输过程中,处理器会等待数据完全发送或接收完毕,才会继续执行后续的操作。这种模式在数据传输量较大或传输速度较慢时,会影响处理器的运行效率,但实现起来相对简单。”来看,这种模式确实不太适合MCU采用。
严西湖里的鱼
发表于 2024-11-15 12:10:05
在《陈工补充USB-CDC虚拟串口》中讲解虚拟串口的应用。首先还是讲解下载渠道,解压安装。进入(查询模式)程序后逐行讲解,后续讲解中断模式的例程。现在没有实验箱完全没法搞呀,不知道申请的样片能不能收到,等到了用面包板拼一个最小系统跑下程序看看。
严西湖里的鱼
发表于 2024-11-15 17:04:59
学习《陈工补充DMA支持的4组独立串口》,终于开始讲DMA这个特性了{:smile:}。开始就提到如何扩展中断,keil只支持31的向量号,超过了会编译报错。后续继续逐行讲解源代码,这个代码是串口不定函数的收发,但是概念还是没讲,看上去要看看别的资料了{:sad:}。手册中讲到DMA是批量数据存储功能,为啥不叫内存直接访问?
严西湖里的鱼
发表于 2024-11-16 20:23:29
开始学习第二十集,开始讲解单片机的SPI接口的结构,SPI就是串行外设接口的简写。其有两种模式,主模式(主机)从模式(从机)。后续讲到SPI接口的结构,通过结构图详细讲解了其中的运作原理。第二部分讲解STC8H8K4U接口数据通信。SPI接口由MISO(主入从出)、MOSI(主出从入)、SCLK(串行时钟信号) /SS(从机选择信号)四根信号线构成。 SPI分为单主机单从机、双器方式(很少用)、单主机多从机方式。8个脉冲主机与从机就完成了互换。后面的主机和从机的选择表很实用。SPIF位和WCOL位都是写1清零,这与一般的寄存器位不一样。SPI接口的时钟有Idle和Active两种状态,其中的Idle状态由CPOL位控制。后续继续讲解的从、主机时序图,要注意相位的问题。现在的外部设备越来越快,所以建议SCLK可以采用系统时钟除4的模式。SPI接线方式采用同名连接在一起。
严西湖里的鱼
发表于 2024-11-17 21:49:51
现在手上没有实验箱,就是申请的芯片也没着落,但是后续的学习也不可能一点实验也不做。看见Proteus现在也可以做STC的防真,今天安装了,后续试试视频中的程序看看能不能跑。估计有点麻烦,毕竟这个STC15W4K32S4有些功能还是没有的。{:sad:}
严西湖里的鱼
发表于 2024-11-18 11:17:16
今天收到申请的AI8051芯片,但是感觉软件先进行仿真,如果没问题再用硬件跑这样效率更高些。而且自己有些基础没有打牢,看程序还是有些吃力,想先要把C语言的相关内容先过一遍再继续学习肯定能事半功倍。现在有些资源也可以给大家分享一下,方便后面学习的朋友,可以节省点时间。
KeilC51V9_61
链接:https://pan.baidu.com/s/1rs4NJHBSkqC_Pu0bpy2mng?pwd=bb36
提取码:bb36
Proteus 8.9 SP2 Pro(已注册)
链接:https://pan.baidu.com/s/1G3R-uFstdZ0ZA6-_vI8THQ?pwd=3cm8
提取码:3cm8
STC15系列单片机学习教程(这篇比较基础,软件的配置讲的很仔细,感觉入门挺好的)
https://www.bilibili.com/video/BV1yG4y1L7Bi/?spm_id_from=333.999.0.0&vd_source=251e4c8e8e689e7e8a5097ff6a41cf6e
STC单片机C语言程序设计——8051体系架构、编程实例及项目实战 何宾老师主讲(这篇属于深入的,主要针对C语言的讲解,比较适合现在的我)
https://www.bilibili.com/video/BV15v41117Tf/?spm_id_from=333.788.videopod.episodes&vd_source=251e4c8e8e689e7e8a5097ff6a41cf6e&p=2