Compare commits
	
		
			3 Commits
		
	
	
		
			USB+FsFAT
			...
			ExempleRPi
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 01d3d2aa9d | |||
| c6c886d1cb | |||
| c21dab75ff | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| build/ | ||||
							
								
								
									
										5
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | ||||
| USB Hôte sur le RP2040 | ||||
| ====================== | ||||
| 
 | ||||
| Ceci est le code de démonstration adapté en un projet indépendant pour pouvoir jouer avec. | ||||
| Compatible avec le PICO SDK v2.1.1. | ||||
							
								
								
									
										38
									
								
								cdc_app.c
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								cdc_app.c
									
									
									
									
									
								
							| @ -85,29 +85,35 @@ void tuh_cdc_rx_cb(uint8_t idx) | ||||
|   printf((char*) buf); | ||||
| } | ||||
| 
 | ||||
| void tuh_cdc_mount_cb(uint8_t idx) | ||||
| { | ||||
|   tuh_cdc_itf_info_t itf_info = { 0 }; | ||||
| // Invoked when a device with CDC interface is mounted
 | ||||
| // idx is index of cdc interface in the internal pool.
 | ||||
| void tuh_cdc_mount_cb(uint8_t idx) { | ||||
|   tuh_itf_info_t itf_info = {0}; | ||||
|   tuh_cdc_itf_get_info(idx, &itf_info); | ||||
| 
 | ||||
|   printf("CDC Interface is mounted: address = %u, itf_num = %u\r\n", itf_info.daddr, itf_info.bInterfaceNumber); | ||||
|   printf("CDC Interface is mounted: address = %u, itf_num = %u\r\n", itf_info.daddr, | ||||
|          itf_info.desc.bInterfaceNumber); | ||||
| 
 | ||||
| #ifdef CFG_TUH_CDC_LINE_CODING_ON_ENUM | ||||
|   // CFG_TUH_CDC_LINE_CODING_ON_ENUM must be defined for line coding is set by tinyusb in enumeration
 | ||||
|   // otherwise you need to call tuh_cdc_set_line_coding() first
 | ||||
|   cdc_line_coding_t line_coding = { 0 }; | ||||
|   if ( tuh_cdc_get_local_line_coding(idx, &line_coding) ) | ||||
|   { | ||||
|     printf("  Baudrate: %lu, Stop Bits : %u\r\n", line_coding.bit_rate, line_coding.stop_bits); | ||||
|     printf("  Parity  : %u, Data Width: %u\r\n", line_coding.parity  , line_coding.data_bits); | ||||
|   // If CFG_TUH_CDC_LINE_CODING_ON_ENUM is defined, line coding will be set by tinyusb stack
 | ||||
|   // while eneumerating new cdc device
 | ||||
|   cdc_line_coding_t line_coding = {0}; | ||||
|   if (tuh_cdc_get_local_line_coding(idx, &line_coding)) { | ||||
|     printf("  Baudrate: %" PRIu32 ", Stop Bits : %u\r\n", line_coding.bit_rate, line_coding.stop_bits); | ||||
|     printf("  Parity  : %u, Data Width: %u\r\n", line_coding.parity, line_coding.data_bits); | ||||
|   } | ||||
| #else | ||||
|   // Set Line Coding upon mounted
 | ||||
|   cdc_line_coding_t new_line_coding = { 115200, CDC_LINE_CODING_STOP_BITS_1, CDC_LINE_CODING_PARITY_NONE, 8 }; | ||||
|   tuh_cdc_set_line_coding(idx, &new_line_coding, NULL, 0); | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
| void tuh_cdc_umount_cb(uint8_t idx) | ||||
| { | ||||
|   tuh_cdc_itf_info_t itf_info = { 0 }; | ||||
| // Invoked when a device with CDC interface is unmounted
 | ||||
| void tuh_cdc_umount_cb(uint8_t idx) { | ||||
|   tuh_itf_info_t itf_info = {0}; | ||||
|   tuh_cdc_itf_get_info(idx, &itf_info); | ||||
| 
 | ||||
|   printf("CDC Interface is unmounted: address = %u, itf_num = %u\r\n", itf_info.daddr, itf_info.bInterfaceNumber); | ||||
| } | ||||
|   printf("CDC Interface is unmounted: address = %u, itf_num = %u\r\n", itf_info.daddr, | ||||
|          itf_info.desc.bInterfaceNumber); | ||||
| } | ||||
							
								
								
									
										62
									
								
								pico_sdk_import.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								pico_sdk_import.cmake
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,62 @@ | ||||
| # This is a copy of <PICO_SDK_PATH>/external/pico_sdk_import.cmake | ||||
| 
 | ||||
| # This can be dropped into an external project to help locate this SDK | ||||
| # It should be include()ed prior to project() | ||||
| 
 | ||||
| if (DEFINED ENV{PICO_SDK_PATH} AND (NOT PICO_SDK_PATH)) | ||||
|     set(PICO_SDK_PATH $ENV{PICO_SDK_PATH}) | ||||
|     message("Using PICO_SDK_PATH from environment ('${PICO_SDK_PATH}')") | ||||
| endif () | ||||
| 
 | ||||
| if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT} AND (NOT PICO_SDK_FETCH_FROM_GIT)) | ||||
|     set(PICO_SDK_FETCH_FROM_GIT $ENV{PICO_SDK_FETCH_FROM_GIT}) | ||||
|     message("Using PICO_SDK_FETCH_FROM_GIT from environment ('${PICO_SDK_FETCH_FROM_GIT}')") | ||||
| endif () | ||||
| 
 | ||||
| if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT_PATH} AND (NOT PICO_SDK_FETCH_FROM_GIT_PATH)) | ||||
|     set(PICO_SDK_FETCH_FROM_GIT_PATH $ENV{PICO_SDK_FETCH_FROM_GIT_PATH}) | ||||
|     message("Using PICO_SDK_FETCH_FROM_GIT_PATH from environment ('${PICO_SDK_FETCH_FROM_GIT_PATH}')") | ||||
| endif () | ||||
| 
 | ||||
| set(PICO_SDK_PATH "${PICO_SDK_PATH}" CACHE PATH "Path to the Raspberry Pi Pico SDK") | ||||
| set(PICO_SDK_FETCH_FROM_GIT "${PICO_SDK_FETCH_FROM_GIT}" CACHE BOOL "Set to ON to fetch copy of SDK from git if not otherwise locatable") | ||||
| set(PICO_SDK_FETCH_FROM_GIT_PATH "${PICO_SDK_FETCH_FROM_GIT_PATH}" CACHE FILEPATH "location to download SDK") | ||||
| 
 | ||||
| if (NOT PICO_SDK_PATH) | ||||
|     if (PICO_SDK_FETCH_FROM_GIT) | ||||
|         include(FetchContent) | ||||
|         set(FETCHCONTENT_BASE_DIR_SAVE ${FETCHCONTENT_BASE_DIR}) | ||||
|         if (PICO_SDK_FETCH_FROM_GIT_PATH) | ||||
|             get_filename_component(FETCHCONTENT_BASE_DIR "${PICO_SDK_FETCH_FROM_GIT_PATH}" REALPATH BASE_DIR "${CMAKE_SOURCE_DIR}") | ||||
|         endif () | ||||
|         FetchContent_Declare( | ||||
|                 pico_sdk | ||||
|                 GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk | ||||
|                 GIT_TAG master | ||||
|         ) | ||||
|         if (NOT pico_sdk) | ||||
|             message("Downloading Raspberry Pi Pico SDK") | ||||
|             FetchContent_Populate(pico_sdk) | ||||
|             set(PICO_SDK_PATH ${pico_sdk_SOURCE_DIR}) | ||||
|         endif () | ||||
|         set(FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR_SAVE}) | ||||
|     else () | ||||
|         message(FATAL_ERROR | ||||
|                 "SDK location was not specified. Please set PICO_SDK_PATH or set PICO_SDK_FETCH_FROM_GIT to on to fetch from git." | ||||
|                 ) | ||||
|     endif () | ||||
| endif () | ||||
| 
 | ||||
| get_filename_component(PICO_SDK_PATH "${PICO_SDK_PATH}" REALPATH BASE_DIR "${CMAKE_BINARY_DIR}") | ||||
| if (NOT EXISTS ${PICO_SDK_PATH}) | ||||
|     message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' not found") | ||||
| endif () | ||||
| 
 | ||||
| set(PICO_SDK_INIT_CMAKE_FILE ${PICO_SDK_PATH}/pico_sdk_init.cmake) | ||||
| if (NOT EXISTS ${PICO_SDK_INIT_CMAKE_FILE}) | ||||
|     message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' does not appear to contain the Raspberry Pi Pico SDK") | ||||
| endif () | ||||
| 
 | ||||
| set(PICO_SDK_PATH ${PICO_SDK_PATH} CACHE PATH "Path to the Raspberry Pi Pico SDK" FORCE) | ||||
| 
 | ||||
| include(${PICO_SDK_INIT_CMAKE_FILE}) | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user