历史上的今天
返回首页

历史上的今天

今天是:2025年01月21日(星期二)

正在发生

2020年01月21日 | 【嵌入式开发】STM8S103F3P6单线半双工串口通信

2020-01-21 来源:eefocus

最近突然接手一个项目,很基础的一些单片机操作就可以完成,唯一值得说道的就是受限于任务要求,需要采用单线通信方式。拿到这个要求的时候有点懵,之前倒是从来没有用过单线的串口通信。 

首先翻了下StrongerHuang的例程,没有,看来还是只能自己来了,在这也对StrongerHuang表示感谢,找到datasheet,这里直接可以看到STM8支持单线半双工,还有别的方法,后面再说。 

  

既然有这样的功能,那么再找找Reference manual看,所有的信息如下: 

  

可以看到讲得很简单,主要就是控制寄存器的配置和引脚的设置。按照这个搞了一天都没有弄出来。问题主要出在哪呢(直接马后炮)? 

 

引脚使用。上面提到了单线半双工使用的是Tx脚,Rx脚是不用的。因为我这里主要是为了和上位机通信,另一端使用的是CH340做的模块,而无法将其设置为单线半双工模式,所以一定记得在发送和接收时切换CH340这端的Tx和Rx,比如做一个单刀双掷开关在切换时直接拨。


引脚配置。最后是在看了官方固件库之后完成的,这里有句话很有意思,Apart from this, the communications are similar to what is done in normal UART mode. 所以官方固件库的做法就是先按照正常配置,然后最后来个HDSEL的设置就OK了。而不要先去做别的配置(好吧,不求甚解了,按照官方配置通信没有问题之后没有去深究为什么)。


最后,Talk is cheap, show you my code.


//直接基于StrongerHuang的例程修改的,只展示最关键的部分

void UART_Initializes(void)

{

  UART1_Init((uint32_t)9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);

  /* Enable UART1 Half Duplex Mode*/

  UART1_HalfDuplexCmd(ENABLE);

}


最后的这个半双工使能是这样的(STM8S的官方库里面有这个文件,路径是下面这个)


STM8S_StdPeriph_LibProjectSTM8S_StdPeriph_ExamplesUART1UART1_HalfDuplex


void UART1_HalfDuplexCmd(FunctionalState NewState)

{

  assert_param(IS_FUNCTIONALSTATE_OK(NewState));


  if (NewState != DISABLE)

  {

    UART1->CR5 |= UART1_CR5_HDSEL;  /**< UART1 Half Duplex Enable  */

  }

  else

  {

    UART1->CR5 &= (uint8_t)~UART1_CR5_HDSEL; /**< UART1 Half Duplex Disable */

  }

}


实际上就是对HDSEL进行了操作。其他的配置和串口的使用都跟普通的串口一样。不过如果是真实的半双工对半双工的话,就像手册里面说的,请设计好仲裁机构,注意通信的顺利完成。 


现在说说别的方式,最后并没有采用这个方案,因为设计硬件的人设计好了电路。那他是怎么设计的呢?就是直接把普通的串口利用两个光电隔离接在了一起,搜索了一下,这倒是很常见。 

推荐阅读

史海拾趣

Embedded Artists公司的发展小趣事

随着业务的不断发展,Embedded Artists公司开始考虑向国际市场扩张。他们与全球各地的合作伙伴建立了紧密的合作关系,共同开发适用于不同市场的嵌入式解决方案。同时,公司还积极参加国际展会和研讨会,与全球同行交流技术心得和市场动态。这些努力使Embedded Artists公司的品牌在国际市场上得到了广泛认可。

蓝箭(BLUE ROCKET)公司的发展小趣事

蓝箭电子始终致力于技术创新和产品升级。随着科技的进步,公司不断引进先进的生产线和技术,推出了各种封装的双极型晶体管、晶闸管、集成电路等产品。这些产品广泛应用于家用电器、电源、IT数码、通信等多个领域,满足了市场的多样化需求。

驰芯微(CHIPWISE)公司的发展小趣事

驰芯微公司与明然科技的合作是公司在技术创新方面的又一重要突破。双方共同研发的MCU控制芯片成功应用于主动悬架项目,并在奇瑞的星途瑶光、瑞虎9等车型上取得了重要进展。这一合作不仅提升了国产芯片在高端配置车型中的应用水平,也进一步推动了驰芯微在汽车电子领域的发展。

Digitron公司的发展小趣事

Digitron公司始终将创新作为企业发展的核心驱动力。公司投入大量资金用于研发新技术和新产品,不断提升产品的性能和功能。XXXX年,Digitron公司成功研发出一款具有无线传输功能的数据记录器,用户可以通过手机或电脑实时查看和监控数据。这一创新产品受到了市场的热烈欢迎,为Digitron公司带来了显著的增长。

Analogix Semiconductor公司的发展小趣事

Digitron公司始终将创新作为企业发展的核心驱动力。公司投入大量资金用于研发新技术和新产品,不断提升产品的性能和功能。XXXX年,Digitron公司成功研发出一款具有无线传输功能的数据记录器,用户可以通过手机或电脑实时查看和监控数据。这一创新产品受到了市场的热烈欢迎,为Digitron公司带来了显著的增长。

AVG [AVG Semiconductors(HITEK)]公司的发展小趣事

AVG Semiconductors自创立之初,就始终坚持以技术创新为核心竞争力。公司不断投入研发资源,推出了一系列具有划时代意义的半导体产品。其中,AVG的某款高效能低功耗芯片在市场上引起了广泛关注,其独特的节能设计和卓越的性能使得AVG在激烈的市场竞争中脱颖而出。这款芯片的成功不仅提升了AVG的品牌形象,也为公司带来了可观的收益,进一步推动了公司的研发创新步伐。

问答坊 | AI 解惑

Power架构再添创新动力,IBM微处理器协作平台在华启动

IBM日前在上海举行典礼,与合作伙伴和各界代表共同见证了全球首个Power架构专用协作创新平台——IBM Power架构应用中心的启用。该中心将围绕IBM Power架构处理器技术,通过与Power.org全球及本地的合作伙伴及研究机构等多方进行共同协作,帮助客户 ...…

查看全部问答>

网络摄像机各个部分的技术浅析

  关键字:网络摄像机   网络摄像机是传统摄像机与网络视频技术相结合的新一代产品,除了具备一般传统摄像机所有的图像捕捉功能外,机内还内置了数字化压缩控制器和基于WEB的操作系统,使得视频数据经压缩加密后,通过网络送至终端用户。本文 ...…

查看全部问答>

电源设计小贴士

电源设计小贴士 1:为您的电源选择正确的工作频率 …

查看全部问答>

MFC requires WINVER to be #defined to 0x0400 or greater

MFC requires WINVER to be #defined to 0x0400 or greater…

查看全部问答>

如何利用VOIMAGE实现特效浏览图片

如何利用VOIMAGE实现特效浏览图片,包括JPG等格式,,我找到了BMP的代码,,,但用VOIMAGE的时候不知道该怎么做了....…

查看全部问答>

C8051F060

谁能给我一个C8051F060的16位高速AD采集的原理图 小弟的邮箱:hgl_killer@yahoo.com.cn 多谢…

查看全部问答>

计算机组成原理课程设计、电子钟、电子琴、智能交通灯电路图!用8255!~和汇编程序!

各位高手:今年计算机组成原理课程设计,电子钟,电子琴,智能交通灯! 这些电路图!我们是用实验箱做实验的!主要电路图不会画  和借口不知道从哪接! 希望大家能看看有没有会的,和做过这样的课程设计!还有相关的汇编语言程序! 希 ...…

查看全部问答>

看STM32的手册,关于flash的问题

在看手册时看到说STM32中,中等密度器件的flash分成了128个page,每个128K,但是中等密度器件的最大Flash也只有128K,那么如果小于128K的那些是怎么分配的吗?另外,这些分配之后Information block和Flash memory interface&nb ...…

查看全部问答>

STM32实现SPI简单通信配置

/******************************************************* 说明:        次程序成功实现SPI简单通信配置,能实现SPI1发送 数据,SPI2接收数据简单通信功能,仅供测试使用。 *********************************** ...…

查看全部问答>