金牌会员
 
- 积分
- 2689
- 金钱
- 2689
- 注册时间
- 2019-4-24
- 在线时间
- 184 小时
|
发表于 2019-9-5 09:26:23
|
显示全部楼层
本帖最后由 yehchanghung 于 2019-9-5 09:27 编辑
版主 你好 , 我仿照你的做法 , 我是1塊F407 另一塊F429 , A板(F429)當HOST ,B板(F407)當DEVICE , 我的B板也可以對電腦傳送資料(目前測試傳0x03數值給電腦 , 電腦也有收到) , 所以B板應該沒問題
B板使用的IO PIN ==>PA11 ,PA12
代碼:#include "main.h"
#include "stm32f4xx_hal.h"
#include "usb_device.h"
#include "gpio.h"
#include "usbd_cdc_if.h"
#include "MODULE_LED.h"
uint8_t test_val;
void SystemClock_Config(void);
int main(void)
{
test_val=0x03;
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USB_DEVICE_Init();
HAL_GPIO_TogglePin(D2_GPIO_Port,D2_Pin);
while (1)
{
HAL_Delay(100);
HAL_GPIO_TogglePin(D2_GPIO_Port,D2_Pin);
CDC_Transmit_FS(&test_val,1);
}
}
////////////////////////////////////////////////////////////////////////////////
接下來我想將B板(DEVICE)的資料傳送到A板(HOST) , A板如果有收到0x03則LED燈亮 , 結果我的A板始終沒收到來自B板的資料(出現問題了) , 想請教各位 , 我程式哪裡出錯了??
我將我的接法用小畫家畫出來 , 請各位看一下幫幫忙拜託~~
B板使用的IO PIN ==>PA11 ,PA12
A板也是使用的IO PIN ==>PA11 ,PA12
AB直接對接~
A板的代碼:
/////////////////////////////////////////////////////////////////////// main.c
#include "main.h"
#include "stm32f4xx_hal.h"
#include "usb_host.h"
#include "gpio.h"
/* USER CODE BEGIN Includes */
#include "usbh_cdc.h"
#include "usb_host.h"
#include "usbh_core.h"
#include "usbh_cdc.h"
extern USBH_HandleTypeDef hUsbHostFS;
uint8_t UserTxBuffer04[100];
void SystemClock_Config(void);
void MX_USB_HOST_Process(void);
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USB_HOST_Init();
while (1)
{
MX_USB_HOST_Process();
HAL_Delay(100);
HAL_GPIO_TogglePin(LD1_GPIO_Port,LD1_Pin);
USBH_CDC_Receive(&hUsbHostFS,UserTxBuffer04,64);
if((UserTxBuffer04[1]==3))
{
LED_L;
HAL_Delay(100);
LED_H;
}
}
}
/////////////////////////////////////////////////////////////////////////////////usb_host.c
#include "usb_host.h"
#include "usbh_core.h"
#include "usbh_cdc.h"
USBH_HandleTypeDef hUsbHostFS;
ApplicationTypeDef Appli_state = APPLICATION_IDLE;
static void USBH_UserProcess (USBH_HandleTypeDef *phost, uint8_t id);
void MX_USB_HOST_Init(void)
{
USBH_Init(&hUsbHostFS, USBH_UserProcess, HOST_FS);
USBH_RegisterClass(&hUsbHostFS, USBH_CDC_CLASS);
USBH_Start(&hUsbHostFS);
}
void MX_USB_HOST_Process(void)
{
USBH_Process(&hUsbHostFS);
}
static void USBH_UserProcess (USBH_HandleTypeDef *phost, uint8_t id)
{
switch(id)
{
case HOST_USER_SELECT_CONFIGURATION:
break;
case HOST_USER_DISCONNECTION:
Appli_state = APPLICATION_DISCONNECT;
break;
case HOST_USER_CLASS_ACTIVE:
Appli_state = APPLICATION_READY;
break;
case HOST_USER_CONNECTION:
Appli_state = APPLICATION_START;
break;
default:
break;
}
}
|
-
接線圖
|