历史上的今天
返回首页

历史上的今天

今天是:2025年07月16日(星期三)

正在发生

2019年07月16日 | STM32开发笔记36: 串口不能正确发数的解决方法

2019-07-16 来源:eefocus

单片机型号:STM32L053R8T6


今天这个问题一定要记录下来,使用485总线时,串口不能正确发送数据。串口的驱动程序已应用在多个实际项目中,自己并未认识到串口的驱动程序会有什么问题,而且在STM32F0芯片中,已经使用过了485,那时很是正常,所以这次问题的出现,倍感以外。


先说一下现象,使用485向计算机发数,计算机接到的全部都是0x00,开始怀疑很多问题,例如连线焊接等,一一排除,不能解决。使用示波器进行查看,发现单片机发送的数据就是这样的,很是奇怪。好在线路板设计时,单片机所在的线路板可以取下,将其插在带有USB转串口的板子上,发现一切正常。这说明单片机所在的电路是没有问题的,应该在外设板上。继续查找原因,直到将外设板上的所有元器件全部都焊下,也没有解决。再次比较485和USB转串口板,只剩下USB转串口芯片了,将这个芯片焊下后,USB转串口板也同样呈现这个问题。


用示波器查看串口的发送端,可以是高电平,但串口的接收端一直是低电平。此时开始怀疑电平问题,当有芯片存在时,将串口的接收端上拉到高电平,所以串口收发正常,当没有芯片时,接收端悬空,反复触发接收中断,所以串口异常。


但是F0的芯片,为什么可以呢?打开原先的程序看一下配置。


F0配置:


    GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;

    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;

    GPIO_InitStruct.Pull = GPIO_PULLUP;

    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;

    GPIO_InitStruct.Alternate = GPIO_AF2_USART6;

    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

L0配置


    GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;

    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;

    GPIO_InitStruct.Pull = GPIO_NOPULL;

    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;

    GPIO_InitStruct.Alternate = GPIO_AF4_USART2;

    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

这样一看就很明显了,STM32CubeMX在生成F0代码时,引脚是上拉的,但是L0没有上拉,将此代码更正后,一切正常。


所有的代码都是人写的,无论他的水平有多高,也有犯错误的时候,哈哈。



推荐阅读

史海拾趣

AC Interface Inc公司的发展小趣事

ABC Electronics Inc. 起初是一家小型电子元件供应商,专注于为本地市场提供基本的电子零部件。然而,随着技术的快速发展,公司创始人意识到,只有不断创新才能在竞争激烈的市场中立足。于是,ABC Electronics 开始投入大量资源研发具有竞争力的新产品。经过数年的努力,公司成功推出了一款具有高效能、低能耗特点的电源管理芯片,迅速获得了市场的认可。这一创新产品不仅为公司带来了可观的利润,也奠定了其在电子行业的技术领先地位。

Akustica(Bosch)公司的发展小趣事

随着全球环保意识的增强,ABC Electronics Inc. 敏锐地捕捉到了绿色电子产品的市场潜力。公司开始研发和生产符合环保标准的产品,如低能耗的LED照明产品、可循环利用的电池等。同时,公司还优化了生产工艺,减少了生产过程中的环境污染。这些环保举措不仅赢得了消费者的青睐,也提升了公司的社会形象。

CIRCUITCO公司的发展小趣事

面对日益增长的市场需求,CIRCUITCO公司意识到必须提升产能以满足客户需求。于是,公司投入巨资对生产线进行升级改造,引进先进的生产设备和技术。经过一系列的努力,公司的生产效率大幅提升,产品质量也得到了进一步保障。这一举措不仅提高了公司的盈利能力,也为公司在未来的市场竞争中奠定了坚实基础。

Elite公司的发展小趣事

Elite公司成立于20世纪90年代末,由一群热衷于电子技术的年轻人创立。在初创阶段,Elite面临着资金短缺、市场竞争激烈的挑战。然而,公司凭借其独特的创新理念和过硬的技术实力,成功研发出一款具有高性价比的智能手机,迅速在市场上获得认可。这款产品不仅帮助Elite实现了初步盈利,更为公司后续发展奠定了坚实基础。

CQR SECURITY公司的发展小趣事

随着电子行业的快速发展,网络安全问题日益突出。CQR SECURITY公司敏锐地捕捉到了这一市场机遇,迅速调整战略方向,专注于提供针对电子设备的安全保护服务。公司研发了一系列高效的安全产品,有效应对了各类网络攻击和数据泄露事件。在不断应对行业挑战的过程中,CQR逐渐积累了丰富的安全实践经验,并赢得了客户的信赖和认可。

Don Connex Electronics Co Ltd公司的发展小趣事

Don Connex Electronics Co Ltd成立于上世纪90年代初,当时电子行业正处于快速发展阶段。公司的创始人李明凭借其在半导体领域的深厚技术背景,带领团队研发出了一款高性能的电源管理芯片,这款芯片在业界引起了广泛关注。该芯片以其低功耗、高效率的特性,迅速在市场上打开了局面,为公司的初创阶段奠定了坚实的基础。

问答坊 | AI 解惑

FPGA推荐的设计10大设计原则

FPGA推荐的设计10大设计原则…

查看全部问答>

请教怎么加载两个菜单。

如题, 在练习菜单的基本设计, 请问高手们怎么在一个窗口加载两个菜单, 就是说手机屏幕上左下角和右下角都是菜单。 多谢高手们指教。…

查看全部问答>

请帮忙看一下这个电阻的作用

请帮忙解释一下R15的作用,是反馈吗?…

查看全部问答>

求 NT 文件系统内幕一书

求 NT 文件系统内幕一书  中文版 可以另外加分或者现金 电子版 印刷版均可 tao_ao@126.com…

查看全部问答>

windows mobile5.0系统如何定制

.本人想做一个windows mobile 5.0的系统. 请问也是用PB吗?? 怎么我做了一个mobile handheld.. 界面跟WINCE的一样!丑死了喔!…

查看全部问答>

WINCE makefile 和 source资料

请问哪位大虾有WINCE下对makefile和source介绍比较好的资料啊,想了解一下其具体写法。 有的话麻烦大虾发一份给我,或者留下网址,我自己去下载也可以。在此先谢过了。 mail:xiangxingjun@126.com…

查看全部问答>

怎样在.net2005中使用serialport控件

我在port_DataReceived事件中对窗口控件操作时老是提示要与独立线程创建的控件交互, 比如,我中该事件中收到一段字符,判断后关闭当前窗口, 这个简单的应用都实现不了,我该怎么做呢?…

查看全部问答>

AVR单片机c语言库

AVR单片机c语言库,可以下载看看…

查看全部问答>

ST的超低成本开发工具为最小的8引脚微控制器创建应用

通过现实生活中的一个有趣味的应用,评估板和样码展示ST7FLITEUS微控制器的各种功能 2006年11月23日 — 意法半导体(纽约证券交易所代码:STM)今天推出了建议转售价格仅为12美元的低成本的ST7Lite系列微控制器评估及开发工具套 ...…

查看全部问答>