OpenEdv-开源电子网

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

DMA发送中文出现乱码的问题?

[复制链接]

8

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2015-3-27
在线时间
11 小时
发表于 2016-3-14 13:47:37 | 显示全部楼层 |阅读模式
1金钱
今天用MINI板子自带的DMA例程做实验,发现发送中文字符的时候偶尔会出现乱码,发送英文的就没问题,不知道哪里出现了问题。

111.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-3-14 14:30:05 | 显示全部楼层
回复

使用道具 举报

8

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2015-3-27
在线时间
11 小时
 楼主| 发表于 2016-3-14 14:56:29 | 显示全部楼层
xkwy 发表于 2016-3-14 14:30
换个串口助手试试

用了三个不同的串口助手,结果是一样的
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-3-14 15:11:37 | 显示全部楼层
紫砂冰茶 发表于 2016-3-14 14:56
用了三个不同的串口助手,结果是一样的

DMA的源地址一定要是外部数组或静态数组。
坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

8

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2015-3-27
在线时间
11 小时
 楼主| 发表于 2016-3-14 15:14:48 | 显示全部楼层
xkwy 发表于 2016-3-14 15:11
DMA的源地址一定要是外部数组或静态数组。

应该没错吧
222.png
回复

使用道具 举报

14

主题

1592

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2622
金钱
2622
注册时间
2014-7-17
在线时间
350 小时
发表于 2016-3-14 15:29:37 | 显示全部楼层
库函数还是寄存器的???
回复

使用道具 举报

8

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2015-3-27
在线时间
11 小时
 楼主| 发表于 2016-3-14 17:36:20 | 显示全部楼层
FantaSy_ 发表于 2016-3-14 15:29
库函数还是寄存器的???

这个是寄存器的,后来把库函数的也试了试。结果一样:只要字符串中含有中文字符,接收到的数据总有那么几个是乱码的。全英文的就没有这种情况!
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-3-14 19:10:22 | 显示全部楼层
紫砂冰茶 发表于 2016-3-14 17:36
这个是寄存器的,后来把库函数的也试了试。结果一样:只要字符串中含有中文字符,接收到的数据总有那么几 ...

把STM32的停止位设置为2,电脑端不要改,

换用好点儿的USB转串口芯片
坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

8

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2015-3-27
在线时间
11 小时
 楼主| 发表于 2016-3-15 11:35:48 | 显示全部楼层
xkwy 发表于 2016-3-14 19:10
把STM32的停止位设置为2,电脑端不要改,

换用好点儿的USB转串口芯片

试了修改停止位,还是不行,我都无语了。下面是我的例程,麻烦帮忙看一下,谢谢了

寄存器 实验15 DMA实验.rar

525.67 KB, 下载次数: 352

库函数实验15 DMA实验.rar

5.78 MB, 下载次数: 65

回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-3-15 14:04:37 | 显示全部楼层
紫砂冰茶 发表于 2016-3-15 11:35
试了修改停止位,还是不行,我都无语了。下面是我的例程,麻烦帮忙看一下,谢谢了

你好,不好意思我没有板子,没法测试你的程序。

我在我的板子上用串口2测试了一下,发现在某种情况下确实中文显示乱码,

但是我是用HEX模式接收,与正确的中文的HEX比对,发现它们的HEX完全一致。

STM32方面没有任何问题,发送的码没有错误。

你也可以做相关测试

3-uart_2.zip (24.42 KB, 下载次数: 381)
坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

8

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2015-3-27
在线时间
11 小时
 楼主| 发表于 2016-3-15 15:42:39 | 显示全部楼层
xkwy 发表于 2016-3-15 14:04
你好,不好意思我没有板子,没法测试你的程序。

我在我的板子上用串口2测试了一下,发现在某种情况下 ...

好的多谢了,我再试试吧。但是汉字出现乱码是个什么情况呢?搞不清楚!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-3-15 23:37:16 | 显示全部楼层
usb线直接接电脑.我们例程,我电脑测试多次都没有出现误码.
回复

使用道具 举报

8

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2015-3-27
在线时间
11 小时
 楼主| 发表于 2016-3-16 09:24:25 | 显示全部楼层
正点原子 发表于 2016-3-15 23:37
usb线直接接电脑.我们例程,我电脑测试多次都没有出现误码.

麻烦试试我上传的寄存器版本那个程序,我这里还是乱码,这个就是你们的例程也没有改动啊。
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1606
金钱
1606
注册时间
2015-6-10
在线时间
223 小时
发表于 2016-3-16 09:59:39 | 显示全部楼层
应该是电脑串口或在串口助手的事

把两个字符合成一个汉字时候出错了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-3-17 23:25:43 | 显示全部楼层
紫砂冰茶 发表于 2016-3-16 09:24
麻烦试试我上传的寄存器版本那个程序,我这里还是乱码,这个就是你们的例程也没有改动啊。

说明串口传输过程中出现了数据错误.降低波特率试试.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

8

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2015-3-27
在线时间
11 小时
 楼主| 发表于 2016-3-18 11:12:42 | 显示全部楼层
正点原子 发表于 2016-3-17 23:25
说明串口传输过程中出现了数据错误.降低波特率试试.

改小了,还是不行,能不能把你们那边针对MINI开发板的DMA例程寄存器版本和库函数版本各上传一份呢,我这边试试看是不是硬件的问题。谢谢了!
回复

使用道具 举报

8

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2015-3-27
在线时间
11 小时
 楼主| 发表于 2016-3-18 11:13:55 | 显示全部楼层
止天 发表于 2016-3-16 09:59
应该是电脑串口或在串口助手的事

把两个字符合成一个汉字时候出错了

恩恩有可能
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-22 10:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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