主機環境:Windows 7 SP1
開發環境:MDK5.14
目標板:STM32F103C8T6
開發庫:STM32F1Cube庫和STM32_USB_Device_Library
STM32Cube庫中提供了一些有關USB的例程,在其工程目錄下的Applications目錄中,這里打開STM3210E_EVAL目錄,可以看到如下例程:
這里選取一個簡單的例子CDC_Standalone,為一個USB通信例程,具體實現是一個USB轉串口的功能,相當于USB串口線。把示例里面的inc和src目錄下的文件拷貝到新建工程中,這里是把跟usb通信相關的文件放到了vcp目錄下。文件目錄結構如下:
其中BSP目錄很簡單,由于所購買的單板只用到了USB,UART模塊以及一個LED燈,原理圖如下:
其中PA15引腳連接了一個LED燈,如下:
因此在stm32f103_demo文件中只添加了led的操作,源文件如下:
/********************************************************************************
* @file stm32f103_demo.c
* @author MCD Application Team
* @version V6.0.0
* @date 13-October-2015
* @brief This file provides a set of firmware functions to manage Leds,
* for STM32F103_DEMO
******************************************************************************
* @attention
*
*
© COPYRIGHT(c) 2014 STMicroelectronics *
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of STMicroelectronics nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "STM32f103_demo.h"
/** @addtogroup BSP
* @{
*/
/** @defgroup STM32F103_DEMO STM32F103-DEMO
* @{
*/
/** @defgroup STM32F103_DEMO_Common STM32F103-DEMO Common
* @{
*/
/** @defgroup STM32F103_DEMO_Private_TypesDefinitions Private Types Definitions
* @{
*/
/**
* @}
*/
/** @defgroup STM32F103_DEMO_Private_Defines Private Defines
* @{
*/
/**
* @brief STM32103 EVAL BSP Driver version number V6.0.0
*/
#define __STM32F103_DEMO_BSP_VERSION_MAIN (0x06) /*!< [31:24] main version */
#define __STM32F103_DEMO_BSP_VERSION_SUB1 (0x00) /*!< [23:16] sub1 version */
#define __STM32F103_DEMO_BSP_VERSION_SUB2 (0x00) /*!< [15:8] sub2 version */
#define __STM32F103_DEMO_BSP_VERSION_RC (0x00) /*!< [7:0] release candidate */
#define __STM32F103_DEMO_BSP_VERSION ((__STM32F103_DEMO_BSP_VERSION_MAIN << 24)
|(__STM32F103_DEMO_BSP_VERSION_SUB1 << 16)
|(__STM32F103_DEMO_BSP_VERSION_SUB2 << 8 )
|(__STM32F103_DEMO_BSP_VERSION_RC))
/**
* @}
*/
/** @defgroup STM32F103_DEMO_Private_Variables Private Variables
* @{
*/
/**
* @brief LED variables
*/
GPIO_TypeDef* LED_PORT[LEDn] = {LED_GPIO_PORT};
const uint16_t LED_PINS[LEDn] = {LED_PIN};
/**
* @brief This method returns the STM32103 EVAL BSP Driver revision
* @retval version : 0xXYZR (8bits for each decimal, R for RC)
*/
uint32_t BSP_GetVersion(void)
{
return __STM32F103_DEMO_BSP_VERSION;
}
/**
* @brief Configures LED GPIO.
* @param Led: Specifies the Led to be configured.
* This parameter can be one of following parameters:
* @arg LED
* @retval None
*/
void BSP_LED_Init(Led_TypeDef Led)
{
GPIO_InitTypeDef gpioinitstruct = {0};
/* Enable the GPIO_LED clock */
LED_GPIO_CLK_ENABLE();
__HAL_RCC_AFIO_CLK_ENABLE();
__HAL_AFIO_REMAP_SWJ_DISABLE();
/* Configure the GPIO_LED pin */
gpioinitstruct.Pin = LED_PINS[Led];
gpioinitstruct.Mode = GPIO_MODE_OUTPUT_PP;
gpioinitstruct.Pull = GPIO_NOPULL;
gpioinitstruct.Speed = GPIO_SPEED_HIGH;
HAL_GPIO_Init(LED_PORT[Led], &gpioinitstruct);
HAL_GPIO_WritePin(LED_PORT[Led], LED_PINS[Led], GPIO_PIN_RESET);
}
/**
* @brief Turns selected LED On.
* @param Led: Specifies the Led to be set on.
* This parameter can be one of following parameters:
* @arg LED
* @retval None
*/
void BSP_LED_On(Led_TypeDef Led)
{
HAL_GPIO_WritePin(LED_PORT[Led], LED_PINS[Led], GPIO_PIN_RESET);
}
/**
* @brief Turns selected LED Off.
* @param Led: Specifies the Led to be set off.
* This parameter can be one of following parameters:
* @arg LED
* @retval None
*/
void BSP_LED_Off(Led_TypeDef Led)
{
HAL_GPIO_WritePin(LED_PORT[Led], LED_PINS[Led], GPIO_PIN_SET);
}
/**
* @brief Toggles the selected LED.
* @param Led: Specifies the Led to be toggled.
* This parameter can be one of following parameters:
* @arg LED
* @retval None
*/
void BSP_LED_Toggle(Led_TypeDef Led)
{
HAL_GPIO_TogglePin(LED_PORT[Led], LED_PINS[Led]);
}
/**
* @}
*/
/**
* @}
*/
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
頭文件如下:
/**
******************************************************************************
* @file stm32f103_demo.h
* @author MCD Application Team
* @version V6.0.0
* @date 13-October-2015
* @brief This file contains definitions for STM32F103_DEMO's LEDs,
* hardware resources.
******************************************************************************
* @attention
*
*
© COPYRIGHT(c) 2014 STMicroelectronics *
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of STMicroelectronics nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32F103_DEMO_H
#define __STM32F103_DEMO_H
#ifdef __cplusplus
上一篇:STM32 USB學習筆記3
下一篇:STM32 USB學習筆記1
推薦閱讀
史海拾趣
近年來,隨著OLED(有機發光二極管)技術的興起,LED行業面臨著巨大的挑戰。Epistar敏銳地意識到了這一點,開始積極調整戰略方向,加大在OLED技術領域的研發力度。同時,公司還通過優化產品結構、提高生產效率等措施降低成本、提升競爭力。這些努力使Epistar在OLED技術浪潮中保持了穩健的發展態勢。
浙江固馳電子有限公司,即固馳(GUERTE)品牌的發源地,于1995年在浙江省麗水市創立。公司由范*先生創立,初期專注于半導體器件的生產。經過數年的不懈努力,固馳電子逐漸在行業內嶄露頭角,通過持續的技術創新和產品優化,成功開發出ZQ系列整流管芯、CELL芯片、5-200A單三相整流橋及電力半導體模塊等核心產品。這些產品廣泛應用于變頻器、逆變焊機、UPS電源等領域,為公司的快速發展奠定了堅實基礎。
在全球化和信息化的大背景下,DLA面臨著諸多挑戰,如跨國采購的風險、網絡安全威脅等。然而,DLA始終堅持創新驅動、持續發展的理念,通過加強國際合作、完善法律法規等方式積極應對挑戰。同時,DLA還注重人才培養和團隊建設,打造了一支高素質、專業化的后勤保障隊伍。這些努力為DLA的持續發展提供了有力保障。
在全球化和信息化的大背景下,DLA面臨著諸多挑戰,如跨國采購的風險、網絡安全威脅等。然而,DLA始終堅持創新驅動、持續發展的理念,通過加強國際合作、完善法律法規等方式積極應對挑戰。同時,DLA還注重人才培養和團隊建設,打造了一支高素質、專業化的后勤保障隊伍。這些努力為DLA的持續發展提供了有力保障。
在成功整合供應鏈之后,DLA開始拓展其業務領域。除了為美軍提供后勤保障服務外,DLA還開始向各州、當地政府組織、外國政府和國際組織提供后勤保障服務。這一拓展不僅拓寬了DLA的業務范圍,也增強了其國際影響力。
面對全球電子市場的巨大潛力,D3公司積極實施全球化戰略。公司不僅在國內市場深耕細作,還積極拓展海外市場。通過與國外知名企業的合作,D3公司的產品逐漸進入國際市場,并在多個國家和地區取得了良好的銷售業績。同時,公司還加強了對海外市場的調研和分析,以更好地滿足當地消費者的需求。這種全球化戰略的實施,為D3公司的長遠發展奠定了堅實的基礎。
CDC::DrawState 可以將正常圖標變灰輸出,但是,在WINDOWS CE下,這個函數不可用 有什么辦法 不需要再準備一副灰色ICON資源,而直接把這個圖標變灰輸出? 達到 CDC::DrawState 一樣的效果? … 查看全部問答∨ |
|
應用層調用waveoutsetvolume的時候,發現驅動層并沒有調用1341的L3-interface來控制音量(2440 _WrL3Data函數)。但是音量確實是變了。 這么說來音量除了通過L3-interface控制,還可以通過其它方式控制?… 查看全部問答∨ |
mobile和PC注冊表操作不一樣嗎?為什么這樣打不開? HKEY key; mobile和PC注冊表操作不一樣嗎?為什么這樣打不開? HKEY key; LPCTSTR data=TEXT("HKEY_LOCAL_MACHINE\\\\SoftWare\\\\Drivers\\\\Camera") ; if(RegOpenKey ...… 查看全部問答∨ |
交流接觸器嗡嗡響,用萬用表量線圈兩端電壓正常,接觸器還有震動,請問是什么原因? 1、可能硅鋼片存在問題。這個和硅鋼片鎮流器日光燈的響聲一樣。 2、更換接觸器。 3、維修:首先清除硅鋼片接觸面的污物,一般可解決問題。如果不行, ...… 查看全部問答∨ |
我的項目使用STM32 103VBT6, 程序中讀取設備唯一ID ,使用modbus協議由觸摸人機界面讀取并顯示。 后來采購時不甚采購了一批STM32 101VBT6,結果發現讀上來的ID全部位FF。用isp軟件讀上來的也是這樣。我看參考手冊, ...… 查看全部問答∨ |