虚拟串口例程详解.pdf

虚拟串口例程详解.pdf

ID:23623520

大小:407.19 KB

页数:35页

时间:2018-11-09

虚拟串口例程详解.pdf_第1页
虚拟串口例程详解.pdf_第2页
虚拟串口例程详解.pdf_第3页
虚拟串口例程详解.pdf_第4页
虚拟串口例程详解.pdf_第5页
资源描述:

《虚拟串口例程详解.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、STM32USBVirtualCOMUSB转串口的功能实现2013-10-0722:27:09

2、分类:USB学习

3、标签:stm32usbvirtualcom

4、举报

5、字号订阅这次讲的是如何实现USB转串口功能的实现。首先看看工程的布局吧:我们主要要介绍的文件的在USB_User这个组文件。从上面的截图可以看到USB_User这个文件由hw_config.c、usb_desc.c、usb_endp.c、usb_istr.c、usb_prop.c、usb_pwr.c几个文件组成。其中usb_istr.c和usb_pwr.c整两

6、个文件不用修改,其他的文件都需要修改。下面接慢慢将来。首先讲讲hw_config.c这个文件。由于我们用到串口,所以这个文件需要添加串口相关代码。在这个文件的开始就需要定义一下串口的相关变量:uint8_tUSART_Rx_Buffer[USART_RX_DATA_SIZE];//串口接收缓冲uint32_tUSART_Rx_ptr_in=0;//这里采用的是一个环形缓冲,串口数据输入起始位置uint32_tUSART_Rx_ptr_out=0;//环形缓冲的数据结束位置uint32_tUSART_Rx_length=0

7、;//接收数据的长度uint8_tUSB_Tx_State=0;//USB发送标志,当串口缓冲有数据没有发送,该位置1这里开了一个2K的环形缓冲如下图所示:其中USART_Rx_ptr_in指向的就是图中readposition处,USART_Rx_ptr_out指向writeposition处,USART_Rx_length就是数据的长度,就是图中橙色的圆弧。当没有数据的时候,USART_Rx_ptr_in=USART_Rx_ptr_out,有数据收到的时候USART_Rx_ptr_in就向后偏移,当数据被读出去的时候

8、USART_Rx_ptr_out也会向后偏移。这里需要定义一个串口默认配置:波特率为9600,数据长度为8位,停止位为1位,奇校验,没有数据流控制,代码如下:/********************************************************************************FunctionName:USART_Config_Default.*Description:串口的默认配置值*Input:None.*Return:None.***********************

9、********************************************************/voidUSART_Config_Default(void){GPIO_InitTypeDefGPIO_InitStructure;/*使能UART2时钟*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);/*配置USART2的Tx引脚类型为推挽式的*/GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_

10、InitStructure.GPIO_Pin=GPIO_Pin_2;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);/*配置USART2的Rx为输入悬空*/GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;GPIO_Init(GPIOA,&GPIO_InitStructure

11、);/*串口默认配置*//*串口配置值如下:-波特率=9600baud-数据长度=8Bits-1位停止位-奇校验-不使能硬件流控制-接收传输使能*/USART_InitStructure.USART_BaudRate=9600;USART_InitStructure.USART_WordLength=USART_WordLength_8b;//8位数据位USART_InitStructure.USART_StopBits=USART_StopBits_1;//1位停止位USART_InitStructure.USART_

12、Parity=USART_Parity_Odd;//奇校验USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//没有数据流控制USART_InitStructure.USART_Mode=USART_Mode_Rx

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。