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

[复制链接]
2925|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端的串口,连接不同的外设,波特率不一样,你说咋办?

评论

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

用USB转串口不行吗
ningling_21 发表于 2018-11-1 15:52 | 显示全部楼层
根据需要设置不同的波特率即可
PS:一般下载程序时不需要通信,通信的时候不需要下载
 楼主| tianqi911 发表于 2018-11-2 15:37 | 显示全部楼层
ningling_21 发表于 2018-11-1 15:52
根据需要设置不同的波特率即可
PS:一般下载程序时不需要通信,通信的时候不需要下载 ...

我问的有问题。就是这个单片机是内置的时钟(串口不管是下载还是应用都是同一个时钟源),但是下载程序需要的也是串口的功能,就是库里默认定时器2设置成了115200。 但是我要用9600连接一个模块,我把定时器2改了设置之后,就下不了程序了。
 楼主| tianqi911 发表于 2018-11-2 15:37 | 显示全部楼层
gx_huang 发表于 2018-11-1 10:28
都不知道说的啥意思。
下载程序和程序需要的波特率是几个意思呀?
下载程序是BOOT程序,开机后用户程序的波 ...

我问的有问题。就是这个单片机是内置的时钟(串口不管是下载还是应用都是同一个时钟源),但是下载程序需要的也是串口的功能,就是库里默认定时器2设置成了115200。 但是我要用9600连接一个模块,我把定时器2改了设置之后,就下不了程序了。
gx_huang 发表于 2018-11-2 16:02 | 显示全部楼层
tianqi911 发表于 2018-11-2 15:37
我问的有问题。就是这个单片机是内置的时钟(串口不管是下载还是应用都是同一个时钟源),但是下载程序需 ...

你这个解释还是不够清楚,串口的波特率可以根据不同需求修改。你这个模块什么时候使用?下载程序又是什么时候使用?一个串口,肯定不可以2个波特率同时和2个模块通信的。这个就需要你优化设计,不可以随心所欲的干啥就干啥。
ningling_21 发表于 2018-11-2 16:49 | 显示全部楼层
tianqi911 发表于 2018-11-2 15:37
我问的有问题。就是这个单片机是内置的时钟(串口不管是下载还是应用都是同一个时钟源),但是下载程序需 ...

把库里默认设置改成9600 行不行?
模块的波特率能不能改?
tree844 发表于 2018-11-2 16:50 | 显示全部楼层
这是什么单片机?你用的什么下载软件?
caijie001 发表于 2018-11-3 19:19 | 显示全部楼层
下载无需设置波特率
 楼主| tianqi911 发表于 2018-11-6 09:55 | 显示全部楼层
手上这款单片机ISP方式下载,flash烧程序。
我看网上有人说,stm32用这种方式(就是用串口)下载的时候,不需要设置波特率?那为什么不需要设置波特率?
我看了MAX232的电路图(用来搞ISP)的,不是需要MCU和PC的波特率一致才能通信吗?
网上还有人说,下载和应用的时候不一样,不用管波特率的设置?我还是不明白。为什么?
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 的波特率。

评论

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

本版积分规则

48

主题

235

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部