OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3004|回复: 5

stm8L的usart数据传输,单次可以,多次发送失败

[复制链接]

19

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2017-2-4
在线时间
33 小时
发表于 2017-3-1 20:17:48 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 aouwen 于 2017-3-1 20:24 编辑

我在用usart来对数据进行传输,先是用串口助手向单片机发送数据,等累计发送满20个字节就返回给串口助手。

可是每次收一个,回发一个是可以的,当累计到20个字节再回发时就会出错

USART_SData8的代码如下,但是里面并没有对USART的DR寄存器置位

void USART_SendData8(USART_TypeDef* USARTx, uint8_t Data)
{
  /* Transmit Data */
  USARTx->DR = Data;
}

累计到20个就出错

累计到20个就出错

一个一个发送是可以的

一个一个发送是可以的

最佳答案

查看完整内容[请看2#楼]

等待一个字节发送完成,再发送一个字节,或者是能发送完成中断,清除标志
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2016-11-1
在线时间
64 小时
发表于 2017-3-1 20:17:49 | 显示全部楼层
等待一个字节发送完成,再发送一个字节,或者是能发送完成中断,清除标志
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2017-3-1 21:41:30 | 显示全部楼层
仿真看一下,怀疑是不是你数组小了?
回复

使用道具 举报

19

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2017-2-4
在线时间
33 小时
 楼主| 发表于 2017-3-3 08:41:11 | 显示全部楼层
正点原子 发表于 2017-3-1 21:41
仿真看一下,怀疑是不是你数组小了?

原子哥,请问数组小是什么意思?老板买来板子的时候好像只有usb,没买仿真的工具。只能通过串口助手发送
回复

使用道具 举报

19

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2017-2-4
在线时间
33 小时
 楼主| 发表于 2017-3-3 11:09:54 | 显示全部楼层
fankai 发表于 2017-3-1 21:28
等待一个字节发送完成,再发送一个字节,或者是能发送完成中断,清除标志

等待一个字节发送完成用的是哪个标志?今天试了TXE和TC都不行,不知道是不是思路有问题
回复

使用道具 举报

19

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2017-2-4
在线时间
33 小时
 楼主| 发表于 2017-3-3 13:23:19 | 显示全部楼层
fankai 发表于 2017-3-1 21:28
等待一个字节发送完成,再发送一个字节,或者是能发送完成中断,清除标志

搞定了,就用标志位tc,txe都行。一开始用错函数,取标志位的函数用了中断的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-9-29 02:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表