串口uart发送出错

大家好!我在做单片机串口的驱动。串口接收还好,但是发送只要波特率一高,就会出错。我设置9600波特率,发送数据基本正确,但是如果调到115200,发送数据基本上全错了。我... 大家好!我在做单片机串口的驱动。串口接收还好,但是发送只要波特率一高,就会出错。

我设置9600波特率,发送数据基本正确,但是如果调到115200,发送数据基本上全错了。

我是用中断写的,每发完一个数据就会产生一个中断,由中断服务程序负责将要发送的数据依次送出。

中断服务程序:
1.关中断
2.tx_buf++; (要发送的数据存在tx_buf里)
tx_cnt--; (要发送的数据个数)
3.开中断
4.IO_HSC1BUF=*tx_buf;

不知道我这样做对不对,为什么波特率一高,就出错?是不是应该加上一些延时,如果是的话,加哪呢?
麻烦大家指点下哦~
展开
 我来答
larry_evants
2010-02-10 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4544
采纳率:0%
帮助的人:5398万
展开全部
用示波器量一下波形,是否规整,如果信号失真太大。那么不能用高的波特率。
一般来讲,115200对于一般的单片机都能达到。
再就是传输距离,如果串口总线信号电压是12V,20m没什么太大问题。如果没有电压转换,距离太长了,波特率高了,信号失真太大。接收就会有问题
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
萍水e相逢
2010-02-10 · TA获得超过3万个赞
知道大有可为答主
回答量:5.9万
采纳率:46%
帮助的人:1.5亿
展开全部
那 就用 9600波特率

可能 存在 误差
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
DJ影逸
2010-02-10 · TA获得超过869个赞
知道小有建树答主
回答量:1815
采纳率:0%
帮助的人:612万
展开全部
收发的波特率是否一致?最好贴出程序。
另外,太高的波特率会有误差的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
潇湘电子工程师
2010-02-16 · TA获得超过3703个赞
知道大有可为答主
回答量:4170
采纳率:0%
帮助的人:2422万
展开全部
你要看看你的晶振电路是不是有问题,先把晶振换个好的试试再说,如果不行,再看单片机的硬件设计是不是有问题,当然也可考虑程序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式