久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
stm32f103單片機USB程序 64字節發送
[打印本頁]
作者:
lussby
時間:
2017-7-3 19:48
標題:
stm32f103單片機USB程序 64字節發送
本例程在正點原子Mini開發板上測試通過,應用非常方便,提供出來給有需要的朋友使用。
0.png
(57.8 KB, 下載次數: 53)
下載附件
2017-7-3 23:12 上傳
stm32f103下位機程序:
/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
* File Name : main.c
* Author : MCD Application Team
* Version : V2.2.0
* Description : Custom HID demo main file
********************************************************************************
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_lib.h"
#include "usb_lib.h"
#include "hw_config.h"
#define GPIO(a,b,c) a->ODR=(a->ODR&(~(1<<b)))|(c ? (1<<b):0) //GPIO(GPIOA,0,1);
#define IOSET1(a,b) a->BSRR = (1<<b) //IOSET1(GPIOA,0);
#define IOSET0(a,b) a->BRR = (1<<b) //IOSET0(GPIOA,0);
#define GETIO(a,b) a->IDR & (1<<b) //x=GETIO(GPIOA,0);
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Extern variables ----------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
void Delay(vu32 nCount);
u8 keydown;
/* Private functions ---------------------------------------------------------*/
u8 Receive_Buffer[64];
u8 InBuffer[0x40];
u32 kc;
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
/*******************************************************************************
* Function Name : EP1_OUT_Callback.
* Description : EP1 OUT Callback Routine.
* Input : None.
* Output : None.
* Return : None.
*******************************************************************************/
void EP1_OUT_Callback(void)
{
u8 DataLen;
DataLen = GetEPRxCount(ENDP1);
PMAToUserBufferCopy(Receive_Buffer, ENDP1_RXADDR, DataLen);
SetEPRxValid(ENDP1);
IOSET1(GPIOB,6);
kc=0xffff;
}
/*******************************************************************************
* Function Name : main.
* Description : main routine.
* Input : None.
* Output : None.
* Return : None.
*******************************************************************************/
int main(void)
{
u8 i;
static u8 c=0;
#ifdef DEBUG
debug();
#endif
Set_System();
USB_Interrupts_Config();
Set_USBClock();
USB_Init();
RCC->APB2ENR|=1<<3; //使能PORTB時鐘
GPIOB->CRL&=0XF00FFF0F;
GPIOB->CRL|=0X03300080;
IOSET1(GPIOB,1);
while (1)
{
if((GETIO(GPIOB,1))==0)
{
Delay(100000);
if((GETIO(GPIOB,1))==0 && keydown==1)
{
keydown=0;
c++;
//Delay(1000000);
for(i=0;i<64;i++)InBuffer[i]=c;
/*copy InBuffer to ENDP1 Tx Packet Memory Area*/
UserToPMABufferCopy(InBuffer, GetEPTxAddr(ENDP1), 64);
SetEPTxCount(ENDP1, 64);
/* enable endpoint for transmission */
SetEPTxValid(ENDP1);
IOSET1(GPIOB,5);
}
}
else
{
//IOSET0(GPIOD,2);
IOSET0(GPIOB,5);
keydown=1;
}
if(kc!=0)
{
kc--;
Delay(5);
if(kc==0)
{
IOSET0(GPIOB,6);
}
}
}
}
/*******************************************************************************
* Function Name : Delay
* Description : Inserts a delay time.
* Input : nCount: specifies the delay time length.
* Output : None
* Return : None
*******************************************************************************/
void Delay(vu32 nCount)
{
for(; nCount!= 0;nCount--);
}
#ifdef DEBUG
/*******************************************************************************
* Function Name : assert_failed
* Description : Reports the name of the source file and the source line number
* where the assert_param error has occurred.
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
MYCustom_HID.rar
(1.24 MB, 下載次數: 48)
2017-7-3 19:47 上傳
點擊文件名下載附件
STM32F103C8T6芯片USB驅動代碼
下載積分: 黑幣 -5
作者:
my_name_wyl
時間:
2019-3-30 17:54
學習,了解!
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产一区二区三区在线看
|
免费国产精品久久久久久
|
国产一级片免费看
|
噜久寡妇噜噜久久寡妇
|
久久久久久国产精品免费
|
亚洲国产91
|
成人精品国产
|
久久69精品久久久久久国产越南
|
欧美在线视频一区二区
|
日韩在线视频播放
|
综合久
|
黄色网址免费在线观看
|
日韩欧美国产一区二区三区
|
亚洲电影成人
|
欧美一级在线观看
|
亚洲欧美久久
|
中文字幕1区
|
国产电影精品久久
|
亚洲免费观看视频网站
|
国产乱码精品一区二区三区中文
|
一区
|
国产精品国产精品国产专区不卡
|
91久久看片
|
国户精品久久久久久久久久久不卡
|
久久com
|
欧美中文字幕一区二区
|
欧美精品网站
|
亚洲成人av一区二区
|
欧美一级高潮片免费的
|
午夜精品影院
|
www日韩欧美
|
可以在线观看av的网站
|
国产在线视频一区二区
|
av网站在线看
|
国产精品一区在线观看
|
亚洲一区二区久久久
|
亚洲精品在线视频
|
亚洲视频国产视频
|
午夜久久久久
|
欧美国产亚洲一区二区
|
国产亚洲一区精品
|