匿名
未登录
登录
丢石头百科
搜索
查看“STM8 多处理器通信”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
STM8 多处理器通信
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
STM8 多处理器通信 通过UART可以实现多处理器通信(将几个UART连在一个网络里)。例如某个UART设备可以是主设备,它的TX输出和其他UART从设备的RX输入相连接;UART从设备的各自TX输出作逻辑与运算后和主设备的RX输入相连接。 在多处理器配置中,我们通常希望只有被寻址的接收者才被激活,来接收随后的数据,这样就可以减少由未被寻址的接收器的参与带来的多余的UART服务开销。 未被寻址的设备可启用其静默功能置于静默模式。在STM8静默模式里:<li>任何接收状态位都不会被设置。 </li><li>所有接收中断被禁止。 </li>* UART_CR1寄存器中的RWU位被置1。RWU可以被硬件自动控制或在某个特定条件下由软件写入。 根据UART_CR1寄存器中的WAKE位状态,UART可以用二种方法进入或退出静默模式。<li>如果WAKE位被复位,进行空闲总线检测。 </li><li>如果WAKE位被置位,进行地址标记检测。 </li> 空闲总线检测(WAKE=0) 当RWU位被写1时,UART进入静默模式。当检测到一空闲帧时,它被唤醒。然后RWU位被硬件清零,但是UART_SR寄存器中的IDLE位并不置1。RWU还可以通过软件清0。图106给出利用空闲总线检测来唤醒和进入静默模式的一个例子。 [[File:STM8_P281_1.jpg]] (图106:STM8利用空闲总线检测的静默模式) 地址标记(address mark)检测(WAKE=1) 在这个模式里,如果MSB是1,该字节被认为是地址,否则被认为是数据。在一个地址字节中,目标接收器的地址被放在4个LSB中。这个4位地址被接收器同它自己地址做比较,接收器的地址被编程在UART_CR2寄存器的ADD位域中。 如果接收到的字节与它的编程地址不匹配时,UART进入静默模式。该字节的接收既不会置1,RXNE标志也不会产生中断,因为UART已经在静默模式。 当接收到的字节与接收器内编程地址匹配时,UART退出静默模式。然后RWU位被清零,随后的字节被正常接收。匹配的地址字节将把RXNE位置1,因为RWU位已被清零。当接收缓冲器不包含数据时(UART_SR的RXNE=0),RWU位可以被写0或1。否则,该次写操作被忽略。 图107给出利用地址标记检测来唤醒和进入静默模式的例子。 [[File:STM8_P281_2.jpg]] (图107:STM8利用地址标记检测的静默模式) 注意:如果使能校验控制,校验位在MSB,而地址位在"MSB-1"位。 例如,对于7位数据,地址模式和校验控制位如下所示:起始位|7位数据|地址位|校验位|停止位
返回至
STM8 多处理器通信
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志