打印
[MCU]

请教问题。一个串口,两种波特率,咋办?

[复制链接]
2197|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tianqi911|  楼主 | 2018-11-1 10:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
只有一个串口,下载程序的波特率是115200,但是程序需要的通信波特率是9600.
这可咋整?

相关帖子

沙发
gx_huang| | 2018-11-1 10:28 | 只看该作者
都不知道说的啥意思。
下载程序和程序需要的波特率是几个意思呀?
下载程序是BOOT程序,开机后用户程序的波特率可以自己设置的。

使用特权

评论回复
板凳
gx_huang| | 2018-11-1 10:29 | 只看该作者
PC端的串口,连接不同的外设,波特率不一样,你说咋办?

使用特权

评论回复
评论
gx_huang 2018-11-1 14:59 回复TA
@sdjhdzkjyxgs :这个要求,年薪有多少? 
sdjhdzkjyxgs 2018-11-1 14:51 回复TA
一、职位名称: 硬件工程师 职位要求: 1、专科以上学历,通信、计算机、电子等相关专业,2年以上相关工作经验; 2、精通硬件电路设计软件; 3、有良好的数字电路、模拟电路等基础知识; 4、能够独立完成电路功能设计、芯片选型、原理图设计、PCBLayout、出BOM表、样机调试的能力, 并协助软件工程师所有硬件电路相关方面的工作; 5、能够独立阅读英文相关资料; 6、有良好的沟通、表达、分析能力,有较好的团队协作精神; 7、工作责任心强,积极主动,细致耐心,能够承担较强的工作压力。 职位描述: 1、熟悉电路设计,  
地板
xuyaqi| | 2018-11-1 13:30 | 只看该作者
gx_huang 发表于 2018-11-1 10:29
PC端的串口,连接不同的外设,波特率不一样,你说咋办?

用USB转串口不行吗

使用特权

评论回复
5
ningling_21| | 2018-11-1 15:52 | 只看该作者
根据需要设置不同的波特率即可
PS:一般下载程序时不需要通信,通信的时候不需要下载

使用特权

评论回复
6
tianqi911|  楼主 | 2018-11-2 15:37 | 只看该作者
ningling_21 发表于 2018-11-1 15:52
根据需要设置不同的波特率即可
PS:一般下载程序时不需要通信,通信的时候不需要下载 ...

我问的有问题。就是这个单片机是内置的时钟(串口不管是下载还是应用都是同一个时钟源),但是下载程序需要的也是串口的功能,就是库里默认定时器2设置成了115200。 但是我要用9600连接一个模块,我把定时器2改了设置之后,就下不了程序了。

使用特权

评论回复
7
tianqi911|  楼主 | 2018-11-2 15:37 | 只看该作者
gx_huang 发表于 2018-11-1 10:28
都不知道说的啥意思。
下载程序和程序需要的波特率是几个意思呀?
下载程序是BOOT程序,开机后用户程序的波 ...

我问的有问题。就是这个单片机是内置的时钟(串口不管是下载还是应用都是同一个时钟源),但是下载程序需要的也是串口的功能,就是库里默认定时器2设置成了115200。 但是我要用9600连接一个模块,我把定时器2改了设置之后,就下不了程序了。

使用特权

评论回复
8
gx_huang| | 2018-11-2 16:02 | 只看该作者
tianqi911 发表于 2018-11-2 15:37
我问的有问题。就是这个单片机是内置的时钟(串口不管是下载还是应用都是同一个时钟源),但是下载程序需 ...

你这个解释还是不够清楚,串口的波特率可以根据不同需求修改。你这个模块什么时候使用?下载程序又是什么时候使用?一个串口,肯定不可以2个波特率同时和2个模块通信的。这个就需要你优化设计,不可以随心所欲的干啥就干啥。

使用特权

评论回复
9
ningling_21| | 2018-11-2 16:49 | 只看该作者
tianqi911 发表于 2018-11-2 15:37
我问的有问题。就是这个单片机是内置的时钟(串口不管是下载还是应用都是同一个时钟源),但是下载程序需 ...

把库里默认设置改成9600 行不行?
模块的波特率能不能改?

使用特权

评论回复
10
tree844| | 2018-11-2 16:50 | 只看该作者
这是什么单片机?你用的什么下载软件?

使用特权

评论回复
11
caijie001| | 2018-11-3 19:19 | 只看该作者
下载无需设置波特率

使用特权

评论回复
12
tianqi911|  楼主 | 2018-11-6 09:55 | 只看该作者
手上这款单片机ISP方式下载,flash烧程序。
我看网上有人说,stm32用这种方式(就是用串口)下载的时候,不需要设置波特率?那为什么不需要设置波特率?
我看了MAX232的电路图(用来搞ISP)的,不是需要MCU和PC的波特率一致才能通信吗?
网上还有人说,下载和应用的时候不一样,不用管波特率的设置?我还是不明白。为什么?

使用特权

评论回复
13
john_lee| | 2018-11-6 10:11 | 只看该作者
tianqi911 发表于 2018-11-6 09:55
手上这款单片机ISP方式下载,flash烧程序。
我看网上有人说,stm32用这种方式(就是用串口)下载的时候,不 ...

stm32的内置 ISP 程序,开始时并不 enable 串口的,而是把串口的 RXD 当做普通 IO,设置为输入模式,当 PC 发出串口数据时,ISP 程序会测量串口数据的脉冲宽度,然后计算出适合的波特率,并使用这个波特率 enable 串口。这样就可以做到自动适配 PC 的波特率。

使用特权

评论回复
评论
tianqi911 2018-11-14 14:26 回复TA
@john_lee :高人。再打搅你一下,你有什么相关的书吗?可以推荐几本吗?我这方面基本是个白痴,一片空白。就“如何下载程序”这个问题,我想了很久了,网上也找了很多,书也看了,每一个说出来原理的。就你说了。 
john_lee 2018-11-14 12:26 回复TA
@tianqi911 :以此计数值就可以计算出波特率。这个技术并不是stm32特有的,早在8051时代就已经比较普遍了。 
john_lee 2018-11-14 12:15 回复TA
@tianqi911 :PC 先发出一个字节,0x00,uart 时序就是在起始位之后有一个下降沿(A),然后是8个bit的低电平,然后有一个上升沿(B),再跟着一个停止位。stm32的isp程序启动后设置RXD引脚为I/O输入模式并启用下降沿中断,当下降沿A来到时,中断服务程序启动一个定时器,并启用上升沿中断,当上升沿B来到时,读取定时器的计数值,这个计数值就是8个bit所需要的时间。 
tianqi911 2018-11-13 17:05 回复TA
哎呀。**,这个解释很详细。那我还想知道,程序是怎么自动测量脉冲宽度的?是STM32自己固有的某种协议吗?它是怎么开头的呢? 
14
airwill| | 2018-11-9 13:23 | 只看该作者
两个模式完全分隔,各做各的初始化,没问题的,既伎同模式下也可分时,握手调整,看看你的WIFI支持多少速率,还自动切换

使用特权

评论回复
15
赵宝旺| | 2018-11-9 16:25 | 只看该作者
把电脑波特率改一下,不就可以了么

使用特权

评论回复
16
why130110| | 2018-11-14 15:41 | 只看该作者
你用的什么芯片?下载速率和工作速率是有区别的。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

235

帖子

2

粉丝