串口助手参数设置:
1.学会串口的一专业名词。”
2.学会串口的配置和使用:(也可以去学习一下试验箱代码,里面的代码非常全面)课后练习:
1:串口发送字符Axirin,(x表示0-7)板子点亮对应LED2.串口发送Bxxxxlrtn,xxxx表示一个四位数,四位数码管显示这个4位数
2.串口发送Z\rin,板子给电脑发送“Hello STC”
3.串口发送字符Cxirin,(x表示0-1)板子打开/关闭蜂鸣
4.串口发送字符Dxirin,板子通过串口发送当前温度给电脑。
能独立做出这个实验的话,说明你已经快出师了。
本来是觉得快出师了,不过,CDC串口存储芯片操纵的假死机,搞的我感觉不行啊
要回炉重做啊
其实,最重要的设置是这里:
双方一定要一致!
为什么要回来重新学习?
我考虑主要是STC的CDC串口用的资源,我也不知道,我在读,写,打印的时候,到底和谁有冲突?
我都搞不清楚,对存储芯片的操作,感觉程序是没什么问题
但是为什么不能在串口助手中正常显示?
应该还是资源冲突,所以打算改写一下,不用CDC串口,看看在普通串口下,能否实现?
这个传输距离:
232 485422 其实我只用过232
毕竟没有搞过实用项目,其实485也是3根线,感觉很实用
看看传输距离
:1200M。感觉好夸张
这没有用过的2个芯片,有机会要买来玩一下,竟然不用改动程序,听上去很简单
2边都加多一个芯片,成本也不高啊
当然,有网络的话,干脆搞个这样的:
距离就完全不受限制啦
当然,串口转以太网,我还没干过,
不知道这个程序逻辑如何?
应该是值的找资料回来试一下
好了,看看引脚选择,这个好实用,可惜CDC上没有这个选项
看看表格:
接着看模式选择:
16.3.5串口1模式0,模式0波特率计算公式
当串口 1 选择工作模式为模式 0时,串行通信接口工作在同步移位寄存器模式,当串行口模式0 的通信速度设置位UART_M0x6为0时,其波特率固定为系统时钟时钟的12分频(SYSclk/12):当设置UART-M0x6为1时,其波特率固定为系统时钟频率的2分频(SYSclk/2)。RxD为串行通讯的数据口,TxD为同步移位脉冲输出脚,发送、接收的是8位数据,低位在先.
模式 0 的发送过程:当主机执行将数据写入发送缓冲器SBUF 指令时启动发送,串行口即将 8 位数据以SYSclk/12或SYSclk/2(由UART_M0x6确定是12分频还是2分频)的波特率从RxD管脚输出(从低位到高位),发送完中断标志TI置1,TxD管脚输出同步移位脉冲信号。当写信号有效后,相隔一个时钟,发送控制端SEND有效(高电平),允许RxD发送数据,同时允许TxD输出同步移位脉冲。一帧(8位)数据发送完毕时,各控制端均恢复原状态,只有TI 保持高电平,呈中断申请状态。在再次发送数据前,必须用软件将 TI 清 0模式0的接收过程:首先将接收中断请求标志RI清零并置位允许接收控制位REN时启动模式0接收过程。启动接收过程后,RxD为串行数据输入端,TxD为同步脉冲输出端。串行接收的波特率为SYSclk/12 或 SYSclk/2(由 UART_MOx6 确定是 12 分频还是 2 分频)。
16.3.6串口1 模式1,模式1波特率计算公式
当软件设置 SCON 的SMO、SMI为“01”时,串行口 1 则以模式1 进行工作。此模式为 8 位 UART格式,一帧信息为10位:1位起始位,8位数据位(低位在先)和1位停止位。波特率可变,即可根据需要进行设置波特率。TxD为数据发送口,RxD为数据接收口,串行口全双工接受/发送。
模式 1 的发送过程:串行通信模式发送时,数据由串行发送端 TxD 输出。当主机执行一条写 SBUF的指令就启动串行通信的发送,写"SBUF”信号还把“1”装入发送移位寄存器的第9位,并通知TX控制单元开始发送。移位寄存器将数据不断右移送TxD端口发送,在数据的左边不断移入"0”作补充。当数据的最高位移到移位寄存器的输出位置,紧跟其后的是第 9位“1”,在它的左边各位全为“0”