Leonardo能对OpenJumper友善点不?-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: ardypro

[已解决] Leonardo能对OpenJumper友善点不?

[复制链接]
发表于 2013-11-24 13:14 | 显示全部楼层
ardypro 发表于 2013-11-24 13:00
插句题外话,刚才用代理上网,尽管每次验证码都没输错,底下都显示对勾了,点击发表回复之后,提示验证码错 ...

现在新版的discuz用的是他提供的云验证码,估计机制有点不同
 楼主| 发表于 2013-11-24 15:03 | 显示全部楼层
越搞越复杂了。

用CodeBlocks for Arduino上传的时候,提示
com9\'.PNG

按照字面理解,应该是使用COM9完成的upload sketch,而不是资源管理器里发现的COM8.

设备管理器里发现的串口也是COM8,但是在查看高级属性时,发现COM9正在使用中,

com9used.PNG


迷糊中......



 楼主| 发表于 2013-11-24 15:43 | 显示全部楼层
跟踪发现,Leonardo在启动bootloader的时候,串口号是COM9(对我的电脑而言),启动完毕之后,串口号变成了COM8,因此上面CodeBlock中提示的forcing reset... 一句就不难理解。

但是还有一个问题,如果上位机的串口一直保持Open,期间Leonardo reset,bootloader启动完成之后,串口号应该还是原来的COM8,跟reset之前是完全一样的,但是如果企图close COM8,则会抛出异常

System.IO.IOException: The specified port does not exist.
   at System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
   at System.IO.Ports.InternalResources.WinIOError()
   at System.IO.Ports.SerialStream.Dispose(Boolean disposing)
   at System.IO.Stream.Close()
   at System.IO.Ports.SerialPort.Dispose(Boolean disposing)
   at System.IO.Ports.SerialPort.Close()
   at leo.MainForm.BtnCloseClick(Object sender, EventArgs e) in c:\Users\ardypro\Documents\SharpDevelop Projects\leo\leo\MainForm.cs:line 52
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.Run(Form mainForm)
   at leo.Program.Main(String[] args) in c:\Users\ardypro\Documents\SharpDevelop Projects\leo\leo\Program.cs:line 27

在.net中,serialPort只是个非可视组件,应该没有handle属性,系统是怎么区分前后两个COM8之间的呢?
发表于 2013-11-24 15:50 | 显示全部楼层
Arduino Leonardo 中文介绍
http://www.arduino.cn/forum.php? ... =1205&fromuid=3
(出处: arduino中文社区)
看这个倒数第三节
发表于 2013-11-24 20:36 | 显示全部楼层
这个帖子科普量挺大!
 楼主| 发表于 2013-11-25 21:55 | 显示全部楼层
奈何col 发表于 2013-11-24 15:50
Arduino Leonardo 中文介绍
http://www.arduino.cn/forum.php?mod=viewthread&tid=1205&fromuid=3
(出处: a ...

你这个只是解释了为什么Leonard在启动过程中为什么串口号会变化,而没有解释或者解决上位机假死的问题,后者对于实际应用更加重要。

点评

没有假死,是串口断开后,再连,就必须手动去open serial,大多数调试软件都是需要手动去打开的,arduino的是自己打开的  详情 回复 发表于 2013-11-25 23:10
发表于 2013-11-25 23:10 | 显示全部楼层
ardypro 发表于 2013-11-25 21:55
你这个只是解释了为什么Leonard在启动过程中为什么串口号会变化,而没有解释或者解决上位机假死的问题, ...

没有假死,是串口断开后,再连,就必须手动去open serial,大多数调试软件都是需要手动去打开的,arduino的是自己打开的
 楼主| 发表于 2013-11-27 21:49 | 显示全部楼层
奈何col 发表于 2013-11-25 23:10
没有假死,是串口断开后,再连,就必须手动去open serial,大多数调试软件都是需要手动去打开的,arduino ...

你没有仔细看我的帖子,比如在你的OpenJumper里,我打开Leonardo的虚拟串口之后,再按leonardo的reset键,即使该虚拟串口恢复之后,你再按OJ里的关闭串口,即使设备管理器此时已经检测到串口了,但是OJ依然会抛出找不到串口的异常。不信你试试。


如果你在reset leonardo之前就已经在上位机里关闭了串口连接,此时reset leonardo,那么等leonardo重置之后,再打开串口,上位机就不会抛出任何异常。
发表于 2013-11-28 00:56 | 显示全部楼层
ardypro 发表于 2013-11-27 21:49
你没有仔细看我的帖子,比如在你的OpenJumper里,我打开Leonardo的虚拟串口之后,再按leonardo的reset键 ...

这个真不是我问题了,应该是usb模拟串口通信造成的,在使用16u2的mega、uno上也有这个问题,用IDE时偶尔会出现~可能因为16u2没有复位键,所以你没太注意~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-4 03:55 , Processed in 0.077550 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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