求教STM32F105 USB模拟串口PA9与串口1复用问题

作者&投稿:类秀 (若有异议请与网页底部的电邮联系)
请教STM32F105 使用CubeMX生成USB虚拟串口的问题~

你好,>> STM32F4的2个USB是否可以同时使用

STM32Cube_FW_F4_V1.3.0 提供了两个例子

DualCore_Standalone USB Host Dual Core example

This is a typical example on how to use the STM32F4xx USB OTG Host peripheral to operate with an USB MSC
device connected to the High Speed port and a HID device connected to the Full Speed port.

DualCore_Standalone USB Device Dual Core example

This is a typical example on how to use the STM32F4xx USB OTG Device peripheral, where STM32 is
enumerated as a MSC device in the High Speed mode, and also as a HID device in the Full Speed mode,
using the native PC Host HID/MSC drivers to which the STM324xG-EVAL board is connected.

HS的作为Device,FS的作为Host 理论上是可行的

首先打开官方demo我们开始进行移植,第一步复制我们可用的文件,操作如下:
Projects\Virtual_COM_Port文件夹下,复制红线部分
我为了方便演示统放在usb/src文件夹下:
现在复制USB的库文件,这些文件不需要我们修改:
上图中的文件统一放在usb/lib文件夹下:
好了现在所需要的文件我们以复制完了。这里先讲一下DEMO程序的主要工作流程:
由上图可知,PC通过虚拟串口发送数据到STM32 usb口,STM32再通过usart1发送数据到PC串口。我们做项目时,只用USB虚拟串口即可。所以我们现在需要把串口发送部分删除。把USB做为一个COM口来使用。我们要如何使用这个USB口呢?demo中是把USB发送数据做了一个缓存,先把要发送的数据存入缓存中,然后由USB自动发送出去。而接收部分是直接通过串口透传。我们在应用时就需要用到两个FIFO,1是发送,这个和demo方式是样;2是接收,接收也做一个缓存,我们通过查询来判断是否收到新数据。这下大家应该明白为什么使用两个FIFO了。 我这里有写好的FIFO库函数可直接使用Queue.c文件。
现在开始修改:
1,stm32_it.c 更名为usb_it.c删除无用代码,只保留usb中断函数,和唤醒函数。

最小的资源开销是1个定时器中断,一个中断引脚。 如果需要多路串口接收的话,那就接到普通引脚,再接一个二极管到中断引脚。引脚中断后去查询IO是那路串口接收到数据位。(最好有上升下降沿中断。不然就下降沿中断,定时器中断轮询)发送也用同一个定时器。定时器的中断速率最好比波特率快几倍,3倍是最好的。。这样出来的多通道串口的波特率是一样的。。。其他的波特率代码要复杂点 查看原帖>>

麻烦采纳,谢谢!

已找答案图


USART1寄存器占用的地址范围?
你这样的提问没有意义……不同厂家、不同型号,USART1外设所分配的映射地址范围可能是不同的。例如对于STM32F10系列,USART1外设的寄存器地址映射在【0x4001 3800 - 0x4001 3BFF】而对于STM32H74系列,USART1外设的寄存器地址映射在【0x4001 1000 - 0x4001 13FF】

谁有有altium的登录账号和密码吗
楼主,想要在AD官网上下载文件,必须够买官方的正版软件(官方客服解释,已与对方通过电话),而官方正版软件个人是买不起的,官方建义可以向所在的公司提出申请够买软件。附件有各个公司的一些常用元件库,包括你要的STM32F10。

stm32 用TIM1输出PWM ,但是 在输出pwm驱动电机的时候...
回答:可能是管脚复用造成的

DHT11模块该接什么功能的引脚?急!
普通的IO口就行了,不需要特定的通信引脚。我记得就一根数据线,是根据高电平的持续时间判断0或1的,仔细看看说明书的时序图,我几年前开发过,具体时序忘了。

推荐一本单片机原理与应用技术的书。
如果你学习单片机的目的是为了以后用于开发,那你就要从基础开始学习,C有C的优点,汇编有汇编的优点,不懂汇编的人成不了编程高手,C里面插入汇编则能充分利用两者的优点,学单片机没有捷径可走,必须学会基本理论,学习基本理论至少要先学会数字电路的基本知识,推荐你认真学一下《单片机原理与应用-基于...

STM32F10驱动A4988步进电机驱动模块程序
本人没用过A4988,但你给出的数据有明显错误:1、VBB(电机电源):最小8V最大35V,你用(VMOT接+5V)5V;(A4988资料上没VMOT这一接口)。2、ENABLE(使能)端口接+A4988才能工作,你给它0V即是叫它休息不必工作。以上

从事bms行业初学stm32f10芯片用什么开发板?
STM32 F1系列Cortex-M3基础型MCU STM32 F1系列基础型MCU满足了工业、医疗和消费类市场的各种应用需求。凭借该产品系列,意法半导体在全球ARM Cortex-M 微控制器领域处于领先地位,同时树立了嵌入式应用的里程碑。该系列利用一流的外设和低功耗、低压操作实现了高性能,同时还以可接受的价格、利用简单的...

泸定县13219253476: STM32f105怎么用USB升级程序 -
植闹胸腺: 1. 扫描U盘寻找特定的固件升级文件;2. 打开文件读入固件到Flash未使用的区间B;3.构造一个IAP函数,其功能是将区间B的内容Copy到工作空间; IAP函数仅仅是Flash操作,且不能有任何函数调用.4. 将IAR函数拷贝到RAM中.5. 调用RAM中的IAP函数.6. MCU自复位

泸定县13219253476: stm32的usb接口外接u盘什么芯片比较好 -
植闹胸腺: STM32F105、STM32F107、STM32F2xx系列,STM32F4xx系列.这些芯片都有USB OTG这个外设,可进行U盘的文件读写,其中STM32F407算是用得很多了,淘宝上有大量的F407开发板卖,算是用得比较普遍的东西.我现在用STM32F205...

泸定县13219253476: 请教STM32F105 写U盘一直 USBH -
植闹胸腺: stm32f105 内部实时时钟好调试.我想,调试过驱动的朋友多多少少都接触过时钟.因为时钟对设备来说,就如同心脏对人体供血一样,是不可或缺的.有些设备自己有时钟,有些接收系统外部时钟,总之时钟源是设备工作的基石.因此检测时...

泸定县13219253476: stm32f105 usb时钟只能二分频三分频 怎么配置usb时钟为48mhz -
植闹胸腺: 原则:STM32 的USB时钟不能超过48MHZ,因此如果时钟源为72MHZ,就需要进行1.5分频:RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);如果时钟源为48MHZ,则进行1分频即可:RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_Div1); STM32的时钟树如下:

泸定县13219253476: 求教STM32F105关闭串口后程序死循环在usb中断原因 -
植闹胸腺: uint32_t USBD_OTG_ISR_Handler (USB_OTG_CORE_HANDLE *pdev) { USB_OTG_GINTSTS_TypeDefgintr_status; uint32_t retval = 0; if (USB_OTG_IsDeviceMode(pdev)) /* ensure that we are in device mode */ { gintr_status.d32 = USB_OTG_...

泸定县13219253476: STM32F105的USB OTG可否接USB HUB -
植闹胸腺: 您好,很高兴为您解答:一般换条USB线就可以了,HUB也是直接换条OTG线就可以转换.你这个可能比较麻烦,需要你的软件做好了才可以的.如果我的回答没帮助到您,请继续追问.

泸定县13219253476: stm32串口通讯,就是我们现在的stm32f103RBT6的最小系统版,有引出usb线,现在想做串口通信 -
植闹胸腺: 是通过USB口进行通信吧?那样的话首先得有相应的USB口模拟串口的驱动程序.

泸定县13219253476: 现金求一个STM32 读写sd 模拟U盘的方案,具体要求如下
植闹胸腺: usb3300的话,USB这块肯定是没问题了!那你要解决的就是SD卡读写这块的速度了.

泸定县13219253476: stm32f105的can和usb能同时使用吗 -
植闹胸腺: 应该没问题,至于是否会互相影响响应速度,那要看你用中断还是DMA.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网