STM32W108无线射频模块串行通信接口
来源:互联网 发布:wan端口断开 编辑:程序博客网 时间:2024/04/29 11:39
串行通信控制模块
STM32W108有两个串行通信控制器:SC1、SC2,它们为全双工同步和异步串行通信提供了如下几个选项:
l SPI(串行外设接口),主从型
l I2C(内部集成电路),主型
l UART(通用异步接收器/发送器),只有SC1
l 接收和发送FIFO和DMA通道,SPI和UART模式
接收和发送FIFOs可以获得更快的数据传输速度,对于高速的SPI和UART,分配专用的接收和发送的DMA通道,以减少CPU的负荷,增加了串行中断控制器的CPU服务时间。轮询操作也可以直接访问串行数据寄存器,图8.1显示了串行通信控制器的组件关系。
注:用符号SCx代替SC1和SC2去表示一个寄存器命名中的一部分,例如SCx_Tx表示SC1_Tx和SC2_Tx都有效。
DMA
DMA通道部分介绍了如何配置和使用串行接收和传输DMA通道。
接收DMA通道有专门的规定来记录UART接收错误,当DMA通道从接收FIFO中传送一个字符到缓冲区时,它会检查存储的奇偶校验以及帧错误状态标志。当一个错误被标记时,SC1_RXERRA/B寄存器将被更新,标记接收的第一个带有奇偶校验或帧错误接收字符的偏移量。同样,如果接收溢出错误发生时,SC1_RXERRA/B寄存器标记错误偏移量。接收FIFO硬件产生INT_SCRXOVF中断,并且DMA状态寄存器会立即指示错误,但在这种情况下,该错误偏移量是输入接收FIFO的实际溢出位置之前的4个字符。两种情况会清除错误指示:在SC1_DMACTRL寄存器中设置适当的SC_RXDMARST位,或卸载并重新加载相应的DMA缓冲区。
中断
UART中断发生在以下事件:
l 发送FIFO为空和最后一个字符移出(根据SCx_INTMODE,SC1_UARTTXIDLE寄存器位从0到1的跳变或为高电平)
l 发送FIFO从满到不满(根据SCx_INTMODE,SC1_UARTTXFREE寄存器位从0到1跳变或为高电平)
l 接收FIFO从空变为不空(根据SCx_INTMODE,SC1_UARTRXVAL寄存器位从0到1跳变或为高电平),
l 发送DMA缓冲区的A/B完成(SC_TXACTA/B由1跳转到0)
l 接收DMA缓冲区的A/B完成(SC_RXACTA/B由1跳转到0)
l 接收到的字符奇偶校验错误
l 接收到的字符有帧错误
l 接收FIFO满时,接收字符丢失(接收溢出错误)
为了确保CPU中断,在第二级的INT_SCxCFG寄存器设置所需的中断位,并且通过在INT_CFGSET寄存器中将INT_SCx位置1启用NVIC中的顶级SCx中断。
- STM32W108无线射频模块串行通信接口
- STM32W108无线射频模块串行通信接口编程实例
- STM32W108无线射频模块通用IO接口
- STM32W108无线射频模块协议栈接口
- STM32W108无线ZigBee射频模块
- STM32W108无线射频模块两节点之间通信实例
- STM32W108无线射频模块多节点之间通信实例
- STM32W108无线射频模块通用IO接口应用实例
- STM32W108无线射频模块外部中断接口应用实例
- STM32W108无线射频模块AD转换器
- STM32W108无线ZigBee射频模块复位模块原理
- STM32W108无线射频模块中断控制器(NVIC)
- STM32W108无线射频模块802.15.4/ZigBee协议栈
- STM32W108无线射频模块AD转换器应用实例
- STM32W108无线ZigBee射频芯片引脚说明(上篇)
- STM32W108无线ZigBee射频芯片引脚说明(下篇)
- SM32W108无线射频模块两节点之间通信实例
- SM32W108无线射频模块多个节点之间通信实例
- OC中的类和对象
- Squid正向代理
- 在主机屋的虚拟主机上安装Discuz_X3.2
- 简单的Android页面跳转
- 如何查看errno 错误代码
- STM32W108无线射频模块串行通信接口
- CSRF
- Squid正向代理的身份验证
- 类模板与友元函数链接问题
- Binder学习一——基础数据结构
- 关于C指针
- CSRF 攻击的应对之道
- Android基础-简单的动画实现 *补间动画 *透明度渐变 *旋转动画 *位移动画 *如果需要几个效果整合到一起,需要将所有效果全部放到set里
- 学习Javascript闭包(Closure)