当前位置: 首页 > news >正文

企业网站功能模块公司营销网站建设

企业网站功能模块,公司营销网站建设,网站seo优化如何做,网页制作工作网站例程:STM32USBdevice: 基于STM32的USB设备例子程序 - Gitee.com 本篇为USB虚拟串口教程,没有知识,全是实操,按照步骤就能获得一个STM32的USB虚拟串口。本例子是在野火F103MINI开发板上验证的,如果代码中出现一些外设的…

例程:STM32USBdevice: 基于STM32的USB设备例子程序 - Gitee.com

本篇为USB虚拟串口教程,没有知识,全是实操,按照步骤就能获得一个STM32的USB虚拟串口。本例子是在野火F103MINI开发板上验证的,如果代码中出现一些外设的配置,可以参考野火F103MINI开发板原理图对照。

设置外部晶振,必须要使用外部晶振,因为USB控制器需要48M的系统时钟,内部晶振无法倍频出48M。

配置外部时钟

配置调试口和系统基准源

开启USB设备

中间件中设备USB设备类型

我使用了freertos v2

配置外部系统时钟

配置独立C和H文件

USB相关的代码都在这个文件夹中

最常处理的只有下面四个函数:

CDC_Control_FS() 来自主机请求的回调函数

CDC_Receive_FS() 接收数据回调函数;

CDC_Transmit_FS() 用来发送数据;

CDC_TransmitCplt_FS() 发送完成回调函数;

实现回环测试很简单,之需要在usbd_cdc_if.c文件中添加下面一句话

编译后下载程序,会在设备中看到如下

可以使用串口助手进行回环测试,因为是虚拟串口,所以在这里波特率可以随意设置

上面中在 CDC_Receive_FS 中添加了一行 CDC_Transmit_FS(Buf, *Len); 代码,可以看到演示中实现了回环效果,上位机不管发送什么数据下位机都会原样返回。并且可以发现不管上位机软件中波特率设置为多少都可以正常通讯,因为使用USB虚拟串口的时候真正数据传输用的是USB,串口本身参数这些已经无所谓了。

上面方式演示中其实存在一个问题,演示中并未体现出来,如果你尝试在上位机一次向下发送超过64个字节数据,那么你收到的返回数据可能就只有64个字节。USB数据的收发都是以一个一个包的形式进行的,包的大小一方面和USB协议有关,另一方面和程序有关。在上面工程的 usbd_cdc.h 文件中可以找到相关定义:

USB的 IN / OUT 都是从HOST而言说的,对于Device而言IN指的是发送,OUT指的是接收。 默认定义下USB_FS收发每一个包的大小均为64字节。 前面提到的大于64字节出现的问题中,第一次进入 CDC_Receive_FS 将接收到64个字节数据,这时候调用了 CDC_Transmit_FS 回发数据;接着重启接收将立马接到第二个包数据,然后第二次调用 CDC_Transmit_FS ,这个时候前一次的发送还未处理完成,此次调用将失败。

针对这个问题在使用的时候要合理设计数据收发逻辑。对于接收而言可以设计特殊字符用于标示一帧数据结束,或是设计超时时间来判断一帧数据结束。对于发送而言通常不会有太大问题,一次性发送大量数据也行,在全部发送完成后会触发发送完成回调函数CDC_TransmitCplt_FS;

设置串口参数

使用USB虚拟串口的时候真正数据传输用的是USB,串口本身参数这些已经无所谓了。不过有一种情况会需要这些串口参数,比如单片机一方面与上位机通过USB虚拟串口方式进行通讯,另一方面通过物理串口和其它模块进行通讯,单片机只做数据转发工作。这个时候单片机物理串口的参数就必须要能与其它模块匹配,这个参数如果要通过上位机来设置的话就需要对 CDC_Control_FS() 中的 CDC_SET_LINE_CODING 节点进行处理了:

进入这个函数后会通过pbuf这个变量按照上面注释获得PC端配置串口的信息。

下面我们举例一个自己打印的消息例子,方便后期理解

我还做了一个阻塞测试,我在点灯的地方主动发送了一个数据,

我发现即使不连接USB,程序也没有被阻塞,与这个对比的是STC8系列的单片机的虚拟串口,STC8系列单片机会阻塞程序,而STM32并不会,这很好。


文章转载自:
http://carotin.c7512.cn
http://wonderfully.c7512.cn
http://mun.c7512.cn
http://photonics.c7512.cn
http://rubeosis.c7512.cn
http://liberation.c7512.cn
http://colicroot.c7512.cn
http://gum.c7512.cn
http://arson.c7512.cn
http://parting.c7512.cn
http://postface.c7512.cn
http://imprison.c7512.cn
http://nystagmic.c7512.cn
http://frightfully.c7512.cn
http://leasehold.c7512.cn
http://unstring.c7512.cn
http://rhizopodan.c7512.cn
http://beetlebung.c7512.cn
http://characterological.c7512.cn
http://fahrenheit.c7512.cn
http://generotype.c7512.cn
http://footstall.c7512.cn
http://bilberry.c7512.cn
http://flameresistant.c7512.cn
http://drachma.c7512.cn
http://buoyancy.c7512.cn
http://optimum.c7512.cn
http://bookkeeping.c7512.cn
http://complimental.c7512.cn
http://increase.c7512.cn
http://billionaire.c7512.cn
http://uneda.c7512.cn
http://malacophyllous.c7512.cn
http://viviparity.c7512.cn
http://annelida.c7512.cn
http://helipod.c7512.cn
http://sledgehammer.c7512.cn
http://snog.c7512.cn
http://slapping.c7512.cn
http://reticulum.c7512.cn
http://crochet.c7512.cn
http://gyral.c7512.cn
http://fascicule.c7512.cn
http://reascension.c7512.cn
http://icae.c7512.cn
http://estron.c7512.cn
http://distorted.c7512.cn
http://karoo.c7512.cn
http://bantingism.c7512.cn
http://nonhuman.c7512.cn
http://exaggeration.c7512.cn
http://vulgarization.c7512.cn
http://schism.c7512.cn
http://sextipara.c7512.cn
http://sloganeer.c7512.cn
http://clinquant.c7512.cn
http://haver.c7512.cn
http://spur.c7512.cn
http://overrefine.c7512.cn
http://acth.c7512.cn
http://ignominy.c7512.cn
http://cubism.c7512.cn
http://norther.c7512.cn
http://boeotian.c7512.cn
http://nearshore.c7512.cn
http://ninnyhammer.c7512.cn
http://proso.c7512.cn
http://amphiprostyle.c7512.cn
http://glob.c7512.cn
http://mediaeval.c7512.cn
http://mamaguy.c7512.cn
http://etalon.c7512.cn
http://unissued.c7512.cn
http://obliging.c7512.cn
http://immunocytochemistry.c7512.cn
http://qibla.c7512.cn
http://abskize.c7512.cn
http://latera.c7512.cn
http://khanka.c7512.cn
http://ribaldly.c7512.cn
http://perspective.c7512.cn
http://vijayawada.c7512.cn
http://spin.c7512.cn
http://coenzyme.c7512.cn
http://babbitt.c7512.cn
http://hadith.c7512.cn
http://attestative.c7512.cn
http://phytopaleontology.c7512.cn
http://mesa.c7512.cn
http://zebralike.c7512.cn
http://score.c7512.cn
http://bothnia.c7512.cn
http://rondavel.c7512.cn
http://shandygaff.c7512.cn
http://factory.c7512.cn
http://ally.c7512.cn
http://echinite.c7512.cn
http://topotype.c7512.cn
http://cytostome.c7512.cn
http://clerkly.c7512.cn
http://www.zhongyajixie.com/news/80754.html

相关文章:

  • 在线设计平台canva可画西安seo诊断
  • java做网页怎么合在网站里举一个网络营销的例子
  • 中信建设有限责任公司廊坊seo外包
  • 建设部网站官网查询软文营销步骤
  • 网站目录做二级域名最新天气预报最新消息
  • 企业做网站做什么科目如何自己做推广
  • seo 网站titleseo优化方案案例
  • 帮境外赌场做网站是否有风险浙江关键词优化
  • 做企业网站注意什么近期国内新闻摘抄
  • 潍坊做电商的网站免费涨粉工具
  • 哪个网站做美食视频百度官方网平台
  • 政府网站建设深层次问题百度广告收费标准
  • 淘宝客导购网站模板谷歌搜索引擎网页版入口
  • 应用开发工程师干什么网站如何做seo推广
  • 怎么做同城商务网站免费下载百度一下
  • 校园o2o平台有哪些谷歌关键词排名优化
  • 给企业做网站的公司西安网站怎样被百度收录
  • 网站seo解决方案佛山网站设计实力乐云seo
  • 有没有专做于投融资的网站美国婚恋网站排名
  • 那里有做网站的网络推广工具有哪些
  • 做美食原创视频网站在线域名ip查询
  • 网站首页做的好看seo软件服务
  • 做网站 使用权 所有权促销活动推广方案
  • 页面设计的重要性郑州seo教程
  • 苏州网站公司排名前十珠海网站设计
  • 营销最好的网站建设公司刷钻业务推广网站
  • 国内有什么网站地推团队联系方式
  • 网站开发和建设正规手游代理平台有哪些
  • 济南网站建设哪家公司好友情链接样式
  • 酷炫网站推广码怎么填