0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32G070多串口终端方案设计

GReq_mcu168 来源:硬件攻城狮 作者:硬件攻城狮 2022-07-04 11:43 次阅读

多串口终端

此功能计划使用存储-转发模式,先将数据从Usart2中的数据全部接收完成,再将数据转发到对应串口外设。

此方案的优势:可以分时复用多串口接口。比较好的应用于主-从协议栈,如Modbus-RTU协议栈。

此方案的劣势:对流式数据不太友好。

硬件设计:

其实硬件设计上面并没有突出的事项,只是利用了STM32G070支持多串口外设,且每个串口外设支持RS485的自动换向驱动。芯片功能强大之后,在硬件设计上面就显得简单的多了。这里版主也就不再过多的讲述,大家参考一下官方的设计方案或者RS485的常规参考设计即可。

软件设计:

软件设计上面,版主采用了三段式的设计方案,引入RTOS信号量与中断的设计方案。为了方便大家的理解,版主绘制了下面的数据流程图供大家分析。

4cc16e08-faa6-11ec-ba43-dac502259ad0.png

大致的设计思路就是:数据流输入,数据流调度与数据输出,三个部分。在数据的流转过程中,在数据接收完成,调试前,调试后均添加回调函数来实现对数据流的过滤处理,如数据格式的转换,数据包校验与丢弃等。

原文标题:STM32G070多串口终端实现

文章出处:【微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • USART
    +关注

    关注

    1

    文章

    195

    浏览量

    30839
  • Modbus-RTU
    +关注

    关注

    0

    文章

    43

    浏览量

    13921
  • 串口终端
    +关注

    关注

    0

    文章

    8

    浏览量

    2400

原文标题:STM32G070多串口终端实现

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    课程上线 | STM32单片机入门教程(1)基于HAL库的多核心开发(F1/F4/G0/U5)

    STM32F103、STM32F405、STM32G070STM32U575全系列课程体系①STM32裸机开发(多核心)②
    的头像 发表于 08-08 16:42 362次阅读
    课程上线 | <b class='flag-5'>STM32</b>单片机入门教程(1)基于HAL库的多核心开发(F1/F4/<b class='flag-5'>G</b>0/U5)

    如何用Arduino开发STM32G070

    如何用Arduino开发STM32G070,各位大神有相关教程吗。我如何在Arduino的开发板管理器中添加STM32G070开发板,如何把程序下载到CPU中?
    发表于 04-07 08:22

    请问STM32G070不对称PWM模式TIME3的OC1REFC和OC2REFC输出是否相反?

    在使用STM32G070 测试timer3不对称PWM时发现,配置的是通道1作为不对称PWM输出,结果测试得出的波形确是在通道2,不知道是不是做反了?还是配置出了问题,同样的测试timer3的组合
    发表于 04-02 07:14

    使用stm32g070 HAL库时想要写入flash,为什么必须要执行一次擦除才能连续写入?

    使用stm32g070 HAL库时,想要写入flash时,必须要执行一次擦除,不然就不能连续写入。
    发表于 03-29 09:24

    stm32G070 GPIO的输出能力很弱的原因?

    stm32G070 GPIO的输出能力似乎很弱,GPIO配置如下 在配置GPIO输出高电平的时候无法输出,去掉R128就可以输出高电平
    发表于 03-29 09:10

    请问STM32G070的DMA支持把sram的数据搬到Flash吗?

    STM32G070的DMA支持把sram的数据搬到Flash吗?
    发表于 03-28 09:46

    STM32G070 SPI主机只接收模式关闭SPI使能后为什么还有时钟输出?

    使用STM32G070,一个板子实现主机只接收,另一个板子实现从机只发送,通信波形上发现主机SPI关闭使能后,片选信号已经置高,仍然有8个时钟输出,如图所示,是要注意什么吗?
    发表于 03-28 07:08

    stm32g070怎么调试才能降低功耗?

    stm32g070,单芯片的最小系统板使用官方例程进入standy 模式后电量70ua左右,和手册的1,2个ua不符,已经确定是芯片的功耗的,不知道该怎么调试才能降低功耗
    发表于 03-28 06:46

    STM32G070 ADC如何禁用内部基准?

    STM32G070 :使用ADC时,不想使用MCU自带的VREF电压源,但只要使能ADC的ADEN位(CR寄存器),内部的电压源自动被使能(ADVREGEN=1),似乎是同步的。ADEN位置1后,ADVREGEN位就不能修改了。手册中说明,可以使用外部的基准 求帮助呀!!!!!!!!!
    发表于 03-27 06:50

    使用STM32G070实验的时候发现G070的RTC无法唤醒进入SLEEP模式下的CPU,怎么解决?

    最近使用STM32G070实验的时候发现G070的RTC无法唤醒进入SLEEP模式下的CPU,不知道什么原因。 void PWR_Enter_Sleep(void) { /* Enable PWR
    发表于 03-26 08:16

    STM32G070串口卡死怎么解决?

    mcu:STM32G070RB,驱动库:hal版本1.6.1 目前会遇到串口2与外部芯片的通讯异常,异常表现为串口2不能收发数据了 串口2的配置方式是CubeMX配置的 接收数据方法
    发表于 03-21 07:46

    STM32G070_ADC如何设置参考电压?

    STM32G070_ADC请教如何设置 参考电压 Stm32CubeMx没有设置参考电压选项 HAL库代码里,也找了没有对应的 比如设置参考电压 为1.2V 或3V 请教如何设置?
    发表于 03-21 06:45

    stm32G070串口设置外部中断触发退出低功耗后重新变为串口串口发送后退出低功耗为什么会卡死?

    stm32G070低功耗STOP模式外部中断唤醒,串口设置外部中断触发退出低功耗后重新变为串口串口发送后 退出低功耗不知道为什么会卡死
    发表于 03-20 07:24

    如何设置STM32G070在工作电源降低到2.7V以下就复位停机?

    我有个应用设计,MCU用的是STM32G070rbt6芯片,外扩了一片铁电存储器FRAM。STM32G070在2.0V-3.3V工作电压下都能正常工作,但铁电存储器FRAM的工作电压
    发表于 03-13 08:04

    STM32F030程序移到STM32G070中断不运行的原因?

    的是STM32F030芯片,用的都是早期寄存器弄的驱动,程序运行都正常。这部份边沿中断程序,移植到STM32G070上时, 直接不 运行。难道是STM32G070上什么寄存器配制,没配到位吗?请哪位大神帮我看看,谢谢!!!
    发表于 03-07 06:56