board_android-IoT/STM32F
SWO (Serial Wire Output) setting
cskimair
2024. 7. 23. 00:27
- main.c
... /* USER CODE BEGIN PV */ uint8_t g_bPortStatus = 0; uint8_t blueButtonStatus=0; /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_I2C1_Init(void); static void MX_I2S3_Init(void); static void MX_SPI1_Init(void); /* USER CODE BEGIN PFP */ /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if(GPIO_Pin == GPIO_PIN_0) { //HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0); //HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_12); blueButtonStatus = ~blueButtonStatus ; } else if(GPIO_Pin == GPIO_PIN_1) { HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_5); } else if(GPIO_Pin == GPIO_PIN_4) { HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_6); } } // in Keil, redefinition of fpuc is necessary int fputc(int ch, FILE *f) { ITM_SendChar(ch); return(ch); } //in CubeIDE, redefinition of _write is ncessary int _write(int file, char *ptr, int len) { for(int i = 0; i < len; i++) { ITM_SendChar(*ptr++); } return len; } int k =0 , ret ; void ITM_SendString(char *s) { while(*s) ITM_SendChar(*s++); } uint8_t *data = "Hello World from USB CDC\n"; /* USER CODE END 0 */ /** * @brief The application entry point. * @retval int */ int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_I2C1_Init(); MX_I2S3_Init(); MX_SPI1_Init(); MX_USB_DEVICE_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ //HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_12); if( blueButtonStatus == SET) HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12 , 1) ; else HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12 , 0) ; HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_13); HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_14); HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_15); g_bPortStatus = HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_12); printf("swo printf:%d\n", k++);//redefinition of fputc required k=k%10; ITM_SendString("0123456789\n"); ITM_SendChar('s'); HAL_Delay(500); ret =CDC_Transmit_FS(data, strlen(data)); HAL_Delay (1000); } /* USER CODE END 3 */ }// end of main |