1nnocet- 发表于 2019-7-22 10:26

【ufun学习】学习篇5:《基础例程4 - USB串口与PC通讯》

<div class='showpostmsg'> 本帖最后由 1nnocet- 于 2019-7-23 09:30 编辑

<p><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;;"><font color="#000000">《基础例程4 - USB</font><font color="#000000">串口与</font><font color="#000000">PC</font><font color="#000000">通讯》</font></span></p>

<p><span lang="EN-US" style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;;"><font color="#000000">USB</font></span><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;;"><font color="#000000">串口与PC</font><font color="#000000">通讯需要使用到</font><font color="#000000">CH340T</font><font color="#000000">的</font><font color="#000000">TXD</font><font color="#000000">和</font><font color="#000000">RXD</font><font color="#000000">引脚,分别对应着学习板</font><font color="#000000">STM32F103RC</font><font color="#000000">芯片的</font><font color="#000000">PA9</font><font color="#000000">和</font><font color="#000000">PA10</font><font color="#000000">引脚。</font></span></p>

<p></p>

<p><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;;"><font color="#000000">另外查看例程运行效果时还需安装Serial Port Utility</font><font color="#000000">(串口调试助手)观察板子与</font><font color="#000000">PC</font><font color="#000000">通讯效果。</font></span></p>

<p><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;;"><font color="#000000">以下为该例程的学习过程:</font></span></p>

<ol>
        <li><span style="font-style: normal;"><span style="font-weight: normal;"><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;;">串口的初始化:串口的初始化除了对使用到的GPIO初始化以外还需对USART1时钟使能、TX、RX配置、波特率、数据位、停止位、奇偶模式、硬件流控模式和发送接收模式的设置。在串口助手调试时需要按照串口初始化的内容进行设置。</span></span></span>

        <div aria-label="代码段 小部件" contenteditable="false" role="region" tabindex="-1">
        <pre data-widget="codesnippet">
<code></code></pre>
        <img src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" /><span bbs.eeworld.com.cn="" editor="" handle.png="" http:="" images="" plugins="" static="" style="background: url(&quot;&lt;imgdata-cke-saved-src=" widget="">&quot;) rgba(220, 220, 220, 0.5); top: -15px; left: 0px; display: block;&quot;&gt;<img height="15" role="presentation" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" title="点击并拖拽以移动" width="15" /></span></div>
        </li>
        <li>之后还需要进行NVIC中断的初始化,该初始化需要选择中断向量控制寄存器组、设置中断优先级等操作,例程中有比较详细的说明。
        <div aria-label="代码段 小部件" contenteditable="false" role="region" tabindex="-1">
        <pre data-widget="codesnippet">
<code></code></pre>
        <img src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" /><span bbs.eeworld.com.cn="" editor="" handle.png="" http:="" images="" plugins="" static="" style="background: url(&quot;&lt;imgdata-cke-saved-src=" widget="">&quot;) rgba(220, 220, 220, 0.5); top: -15px; left: 0px; display: block;&quot;&gt;<img height="15" role="presentation" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" title="点击并拖拽以移动" width="15" /></span></div>
        </li>
        <li>其中main函数中的&nbsp;&nbsp; &nbsp;extern uint8_t ucTemp;&nbsp; &nbsp; 变量有点难搞,找了半天原来是在stm32f10x_it.h文件里面,用于void USART1_IRQHandler()&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;串口接收中断函数中</li>
        <li>例程调试:
        <p style="text-align:justify"><span style="font-size:10.5pt"><span style="font-family:&quot;Times New Roman&quot;,serif"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">a.打开串口调试助手选择对应串口进行如下设置:</span></span></span></p>

        <p style="text-align:justify"><span style="font-size:10.5pt"><span style="font-family:&quot;Times New Roman&quot;,serif"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">波特率设置:9600</span></span></span></p>

        <p style="text-align:justify"><span style="font-size:10.5pt"><span style="font-family:&quot;Times New Roman&quot;,serif"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">数据位设置:8</span></span></span></p>

        <p style="text-align:justify"><span style="font-size:10.5pt"><span style="font-family:&quot;Times New Roman&quot;,serif"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">停止位设置:1</span></span></span></p>

        <p style="text-align:justify"><span style="font-size:10.5pt"><span style="font-family:&quot;Times New Roman&quot;,serif"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">奇偶模式设置:N</span></span></span></p>

        <p style="text-align:justify"><span style="font-size:10.5pt"><span style="font-family:&quot;Times New Roman&quot;,serif"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">硬件流控模式设置:N</span></span></span></p>

        <p style="text-align:justify"><span style="font-size:10.5pt"><span style="font-family:&quot;Times New Roman&quot;,serif"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">接收:ASCII</span></span></span></p>

        <p style="text-align:justify"><span style="font-size:10.5pt"><span style="font-family:&quot;Times New Roman&quot;,serif"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">发送:HEX</span></span></span>b.<span style="font-size:10.5pt"><span style="font-family:&quot;Times New Roman&quot;,serif"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">串口调试助手发送0x10给ufun,ufun开始发送数据给串口调试助手;</span></span></span></p>

        <p style="text-align:justify"><span style="font-size:10.5pt"><span style="font-family:&quot;Times New Roman&quot;,serif"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">串口调试助手发送0x11给ufun,ufun停止发送数据给串口调试助手;</span></span></span><iframe allowfullscreen="true" frameborder="0" height="450" src="http://player.youku.com/embed/XNDI4MTM4Nzg2NA" style="background:#eee;margin-bottom:10px;" width="100%"></iframe><br />
        <br />
        <br />
        <b><font color="#5E7384">此内容由EEWORLD论坛网友<font size="3">1nnocet-</font>原创,如需转载或用于商业用途需征得作者同意并注明出处</font></b><br />
        &nbsp;</p>
        </li>
</ol>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

desk1983 发表于 2019-7-23 08:27

<p>非常好的资料,感谢分享;<br />
共享精神万岁。<br />
希望楼主以后多多分享资料,帮助更多的电子爱好者。</p>

desk1983 发表于 2019-7-23 08:28

<p><span style="color:#000000">能不能把Serial Port Utility</span><span style="color:#000000">(串口调试助手)共享一下一?</span></p>

<p><span style="color:#000000">方便大家在学习的时候</span></p>

<p><span style="color:#000000">观察板子与</span><span style="color:#000000">PC</span><span style="color:#000000">通讯效果</span></p>

1nnocet- 发表于 2019-7-23 09:27

<p>我找找</p>

1nnocet- 发表于 2019-7-23 09:33

1nnocet- 发表于 2019-7-23 09:27
我找找

<p>我是在百度上面找的,下载链接不知道能不能找到,我把安装包上传到帖子了,但是要重新审核</p>

1nnocet- 发表于 2019-7-23 09:41

desk1983 发表于 2019-7-23 08:28
能不能把Serial Port Utility(串口调试助手)共享一下一?

方便大家在学习的时候

观察板子与PC通讯 ...

<p><a href="http://www.onlinedown.net/soft/261875.htm" target="_blank">串口调试助手</a>下载地址,</p>

desk1983 发表于 2020-3-6 22:29

<table cellpadding="0" cellspacing="0">
        <tbody>
                <tr>
                        <td>
                        <p>大神呀?为什么我移植串口程序的时候,总是乱码,但是用原来的例程烧写进去又没事了呢?</p>

                        <p>我的总线时钟没配置明白吗?</p>

                        <p>我看代码里面也没有配置总线时钟的语句呀</p>
                        </td>
                </tr>
        </tbody>
</table>
页: [1]
查看完整版本: 【ufun学习】学习篇5:《基础例程4 - USB串口与PC通讯》