搜索
bottom↓
123
返回列表 发新帖
楼主: lvhaian

【原创开源】 基于 STM32F103C6T6 的 USB 转 RS232 模块..

  [复制链接]

出0入0汤圆

发表于 2009-11-28 17:42:38 | 显示全部楼层
跟着学习

出0入0汤圆

发表于 2009-11-28 17:33:16 | 显示全部楼层
跟着学习

出0入0汤圆

发表于 2009-11-28 15:25:36 | 显示全部楼层
新的一天又开始啦

继续研究 STM32 USB CDC

代码中,使用了Queue中间件

对于Queue的数据结构,我有一点疑问

在QueueCreate函数中,读取空处理和写满处理的声明是这样的:
uint8_t (* ReadEmpty)()
uint8_t (* WriteFull)()

但具体的调用的格式是这样的:
err = Queue->ReadEmpty(Ret, Queue);
err = Queue->WriteFull(Queue, Data, Q_WRITE_MODE);

实际的函数声明是这样的:
u8 QueueWriteFull(DataQueue *Buf, QUEUE_DATA_TYPE Data, u8 Mod)

这样不会出错吗?好像实际编译并没有报错?

函数指针的形参不一致也可以调用的吗?

出0入0汤圆

 楼主| 发表于 2009-11-27 16:13:18 | 显示全部楼层
哦 ^_^, 大量数据和串口的驱动有关的

毕竟超级终端 微软自己编写的.

不过超级终端是超级稳定. 他的几个协议也是超级稳定.

出0入0汤圆

发表于 2009-11-27 16:04:24 | 显示全部楼层
安哥~

我刚刚试了 串口调试助手 V2.2 ,更不行呀,久违的电脑蓝屏都出来了

使用机器真串口发送是没有问题

使用USB模拟串口,选择发送文件,我选择了一个800Kbyte大小的文件,选择16进制发送

一点击发送就蓝屏了……

看来小小的串口调试软件里面都有大技术呀,关于计算机串口的软件,微软的功力还是无人可及的。超级终端咋就这么稳定呢?

可惜超级终端功能用来调试单片机不合适,无法显示HEX,无法按HEX发送字符和文件……

出0入0汤圆

 楼主| 发表于 2009-11-27 13:29:55 | 显示全部楼层
丁丁的SSCOM32顶不住

准确的说这个软件性能不好, ^_^

我也试验过数据量大的时候, 还有开两个的时候这个软件会死机. 肯定么超级终端稳定.

你可以用这个看看
点击此处下载 ourdev_508107.rar(文件大小:114K) (原文件名:串口调试助手V2.2.rar)

不过这个软件虽然通信好点, 但是什么起始位 停止位都是形同虚设, 而且串口只能选 4 个. 也很垃圾.

出0入0汤圆

发表于 2009-11-27 13:08:59 | 显示全部楼层
谢谢安哥~~~

继续请教一些问题哈

我尝试修改程序,将STM32串口接收改成从FLASH中读取数据,然后通过USB发送到PC

这样的结果是丁丁的SSCOM32顶不住,一开就死,数据量太大了,用系统自带的超级终端就没有问题,我猜这个问题应该是USB的驱动造成的?从STM32 USB 到PC USB这里并没有按照设定的串口速率才传输的,而是以最大速度传输的?

另外一个问题是,我看到SSCOM在发送数据的时候,一次是发送256个字节,但在STM32 的USB参数设置里面,BUFFER的大小是设置为64字节的,这个会有冲突吗?我不懂USB通讯,这个问题可能有些RZ哈……

出0入0汤圆

发表于 2009-11-27 13:04:46 | 显示全部楼层
顶一个,多谢安哥!

出0入0汤圆

 楼主| 发表于 2009-11-27 12:57:55 | 显示全部楼层
【32楼】 STM32_Study

-------------------------------

看的好仔细啊, ^_^!!

程序是虫子改进的, 我把虫子的理由给你说一下.

【一】buf_usb_to_uart 这个队列实际是没有使用的,是吧?
--------------------------------------------------------
最开始我让虫子开了两个队列, 是因为实际上 UART 的速度远远小于 USB 的速度,不会出现队列写满的情况.
所以虫子改进的时候把这个队列去了.


【二】另外,开USART_IT_TXE这个中断的用意是什么呢?这个应该也是没有用到的吧?
---------------------------------------------------------
  之前是用到了当队列满的时候会使用中断发送出去, 现在确实是使用扫描发送出去的.



【三】两个队列写满以后调用的QueueWriteFull,这是不是一个Bug?
      QueueWriteFull 里面的功能是针对 USB To UART的?实际上只有 buf_uart_to_usb 队列才用到了呀?
      我猜想,这个功能之所以没有出错,是因为实际上UART的速度远远小于USB的速度,不会出现队列写满的情况?
------------------------------------------------------

你说的没有错, 已经把 buf_usb_to_uart 这个给去了, 所以确实这个写满已经没有用到了.



=======================================================

总而言之: 你真仔细.

出0入4汤圆

发表于 2009-11-26 21:11:50 | 显示全部楼层
顶一个,以后会用得着。

出20入0汤圆

发表于 2009-11-26 21:02:13 | 显示全部楼层
强帖留名……

出0入0汤圆

发表于 2009-11-26 20:58:59 | 显示全部楼层
顶一顶,请安哥有空来看看

出0入0汤圆

发表于 2009-11-26 16:27:32 | 显示全部楼层
请教安哥

刚刚看了一下代码,有几个问题,请安哥指点

【一】buf_usb_to_uart 这个队列实际是没有使用的,是吧?

【二】另外,开USART_IT_TXE这个中断的用意是什么呢?这个应该也是没有用到的吧?

【三】两个队列写满以后调用的QueueWriteFull,这是不是一个Bug?
      QueueWriteFull 里面的功能是针对 USB To UART的?实际上只有 buf_uart_to_usb 队列才用到了呀?
      我猜想,这个功能之所以没有出错,是因为实际上UART的速度远远小于USB的速度,不会出现队列写满的情况?

出0入0汤圆

发表于 2009-11-24 23:07:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-24 16:47:02 | 显示全部楼层
关注安哥。

出0入0汤圆

发表于 2009-11-24 16:27:40 | 显示全部楼层
留个名,有空好好学学

出0入0汤圆

发表于 2009-11-24 15:49:32 | 显示全部楼层
好贴,资料够全,学习USB的好例子!

出50入255汤圆

发表于 2009-11-24 14:58:07 | 显示全部楼层
我之前在朋友帮忙下用MC908JB8JDW做了一个,本来也是改造产品为USB转串口的,
但有些程序兼容性不好,就一直没有用起来。

出0入0汤圆

发表于 2009-11-24 13:27:03 | 显示全部楼层
不错,有机会做个用用

出0入0汤圆

发表于 2009-11-23 23:30:24 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2009-11-23 23:25:08 | 显示全部楼层
【18楼】 cinderellah  
希望能出个uc/gui的移植教程~看起来太费劲了~


---------------------------

其实移植只需要两个函数就可以了

读点函数和写点函数.

不过说上去简单 实际就没有那么容易了. 得抽空啊.

出0入0汤圆

发表于 2009-11-23 23:23:33 | 显示全部楼层
好东西,呵呵

出0入0汤圆

 楼主| 发表于 2009-11-23 22:51:11 | 显示全部楼层
不客气那 , ^_^!!

这个东西实际价格应该很便宜, 不过我觉得没有途径我们买不到而已 呵呵

出0入0汤圆

发表于 2009-11-23 22:40:24 | 显示全部楼层
【12楼】 lvhaian 安哥

谢谢安哥,目前产品定位比较低,无法采用这个价位的外壳

我觉得如果外壳价格这么高的话,如果没有大批量,不如买阿莫的一台雕刻机,自己买一些标准壳来开孔做外壳。

出0入0汤圆

发表于 2009-11-23 22:09:22 | 显示全部楼层

出0入0汤圆

发表于 2009-11-23 21:26:23 | 显示全部楼层
mark一下~安哥太强了~
希望能出个uc/gui的移植教程~看起来太费劲了~

出0入0汤圆

发表于 2009-11-23 21:07:59 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-23 20:41:04 | 显示全部楼层
mark一下

出0入0汤圆

发表于 2009-11-23 20:38:09 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-23 20:23:44 | 显示全部楼层
鼠标不错,要是没尾巴就更好了。

出0入0汤圆

发表于 2009-11-23 19:22:54 | 显示全部楼层
顶,谢谢安哥提供这样一个好东西

出0入0汤圆

 楼主| 发表于 2009-11-23 19:16:58 | 显示全部楼层
【10楼】 STM32_Study  

请问安哥,那个壳子哪里有得买呀?

--------------------------

这个盒子确实不好买, 我也是托关系才弄了 200 个, 不过价格很高.

需要的话我可以原价转给你. 带外壳, 包装, 线 8 元每个. 买来就是这个价格啊. 如果嫌价格高, 你只能另想办法了.

出0入0汤圆

发表于 2009-11-23 19:03:11 | 显示全部楼层
这个要mark一下。

出0入0汤圆

发表于 2009-11-23 19:03:11 | 显示全部楼层
请问安哥,那个壳子哪里有得买呀?

出0入0汤圆

发表于 2009-11-23 18:57:50 | 显示全部楼层
顶顶顶,估计要用到,,谢谢

出0入0汤圆

 楼主| 发表于 2009-11-23 18:04:57 | 显示全部楼层
【6楼】 breight
兼容性怎么样,工控自动化行业里面很多走232通讯的,协议都非常底层,这方面有测试过吗

我不知道您说的兼容性指的是什么, 是指在不同的 PC 上么?

通过我大量试验下来, 这个 USB 转 RS232 可以做到 CH431 的水平. 都是使用的 CDC 协议.


FT232BM 性能确实要强大一些, 那个是 FDTI 公司自己写的 WindowsXP 中的驱动, 缓存也做的比较大, 所以性能才更加好, 我之所以开源这个东西, 其实也希望一些 PC 端驱动写的比较好的朋友一起加入进来, 争取赶上 FDTI 公司的 FT232BM.

出0入0汤圆

 楼主| 发表于 2009-11-23 18:01:18 | 显示全部楼层
【2楼】 gongnn 魔法师
有价格优势?

------------------------

没有价格优势, 毕竟和那些专用芯片比起来价格肯定高了.

这个只是一个兴趣产品.  

不过可以利用这个东西完全可以集成到你的系统中.

比如你原来你的系统是串口的, 其实完全不必修改原来的 PC 上的程序, 直接把你硬件的 USB 引出来, 把我上面发出来的代码稍许修改下集成到你的系统中可以做到最简单的方式升级到 USB 通讯.

出0入0汤圆

发表于 2009-11-23 17:59:36 | 显示全部楼层
兼容性怎么样,工控自动化行业里面很多走232通讯的,协议都非常底层,这方面有测试过吗

出0入0汤圆

 楼主| 发表于 2009-11-23 17:58:09 | 显示全部楼层
像水猫说的:真怀疑ST有没有合格的软件工程师供职。

---------------------------------------------

这个我倒是不太赞同:

其实通过 ST 的一些例子可以看到其实 ST 的软件工程师的实力是相当高的.

我觉得他放出这个 bug 代码是故意的. 只是起到一个抛砖引玉的作用.

出0入663汤圆

发表于 2009-11-23 17:54:49 | 显示全部楼层
【3楼】 lvhaian 安哥

是的,结构性的bug,对缓冲区处理极其不严谨,会丢字符……
像水猫说的:真怀疑ST有没有合格的软件工程师供职。

出0入0汤圆

 楼主| 发表于 2009-11-23 17:52:28 | 显示全部楼层
【1楼】 gzhuli 咕唧霖

顶一个,很早已经拿ST的三合一板当USB-CDC用了。

----------------------------------------------------

原装的例程中其实有很大的 bug , 这个程序是经过我们将近一年测试下来比较可靠的程序.

出0入0汤圆

发表于 2009-11-23 17:52:05 | 显示全部楼层
有价格优势?

出0入663汤圆

发表于 2009-11-23 17:47:56 | 显示全部楼层
顶一个,很早已经拿ST的三合一板当USB-CDC用了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-12 16:55

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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