We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
i m sending energy data to website using sim800l with keil ide.. the problem is i m able connect with internet but i m not be able send any data till now.. i have attached keil code please give me suggetion where i m doing wrong...
/* Includes ------------------------------------------------------------------*/ #include "main.h" #include "stm32f1xx_hal.h" #include "string.h" /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ /* Private variables ---------------------------------------------------------*/ ADC_HandleTypeDef hadc1; UART_HandleTypeDef huart1; UART_HandleTypeDef huart3; DMA_HandleTypeDef hdma_usart1_rx; DMA_HandleTypeDef hdma_usart1_tx; DMA_HandleTypeDef hdma_usart3_rx; DMA_HandleTypeDef hdma_usart3_tx; /* USER CODE BEGIN PV */ /* Private variables ---------------------------------------------------------*/ /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_DMA_Init(void); static void MX_ADC1_Init(void); static void MX_USART1_UART_Init(void); static void MX_USART3_UART_Init(void); /* USER CODE BEGIN PFP */ /* Private function prototypes -----------------------------------------------*/ /* USER CODE END PFP */ /* USER CODE BEGIN 0 */ /* USER CODE END 0 */ 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_DMA_Init(); MX_ADC1_Init(); MX_USART1_UART_Init(); MX_USART3_UART_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ //*************************************AT commands to connect internet********************************************* while(1){ char getstr[200]="id="; uint8_t myPrintData_0[10]="Start\r\n"; uint8_t myPrintData_1[20]="Sending Data...\r\n"; uint8_t myclockData_1[15]="AT+CCLK?\r\n"; uint8_t myTxData_0[50]="AT\r\n"; uint8_t myTxData_1[50]="AT+SAPBR=3,1,\"Contype\",\"GPRS\"\r\n"; uint8_t myTxData_2[50]="AT+SAPBR=3,1,\"APN\",\"\"\r\n"; uint8_t myPrintData_2[30]="Connecting to internet..."; uint8_t myTxData_4[50]="AT+SAPBR=1,1\r\n"; uint8_t myPrintData_3[40]="Internet Connection Established"; uint8_t myTxData_5[50]="AT+HTTPINIT\r\n"; uint8_t myTxData_11[200]="AT+HTTPPARA=\"URL\",\"http://credencerobotics.000webhostapp.com/value.php?id=SP0007&v=823.00&i=209.00&kw=440.00&kwh=65.00&kva=92.00&kvar=242.00&pf=87.00&f=203.00"; uint8_t data_1[50]="\""; uint8_t myTxData_8[20]="AT+HTTPACTION=0"; uint8_t myTxData_9[20]="AT+HTTPREAD"; uint8_t myTxData_10[20]="AT+HTTPTERM"; HAL_UART_Transmit(&huart3,myclockData_1,20,10); //print clock data HAL_Delay(1000); HAL_UART_Transmit(&huart1, myPrintData_0,10,10); //print start HAL_Delay(1000); HAL_UART_Transmit(&huart3,myTxData_0,50,20); HAL_Delay(2000); HAL_UART_Transmit(&huart3,myTxData_1,50,20); HAL_Delay(2000); HAL_UART_Transmit(&huart3, myTxData_2,50,20); HAL_Delay(2000); HAL_UART_Transmit(&huart1, myPrintData_2,30,20); HAL_Delay(2000); HAL_UART_Transmit(&huart3, myTxData_4,50,20); HAL_Delay(2000); HAL_UART_Transmit(&huart3, myPrintData_3,40,30); HAL_Delay(3000); HAL_UART_Transmit(&huart3, myTxData_5,50,30); HAL_Delay(3000); HAL_UART_Transmit(&huart3, myTxData_11,200,10); HAL_Delay(5000); HAL_UART_Transmit(&huart3, data_1,5,10); HAL_Delay(5000); HAL_UART_Transmit(&huart3, myTxData_8,20,10); HAL_Delay(5000); HAL_UART_Transmit(&huart3, myTxData_9,20,10); HAL_Delay(5000); HAL_UART_Transmit(&huart3, myTxData_10,20,10); HAL_Delay(5000); } /* USER CODE END 3 */ } /** System Clock Configuration */ void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct; RCC_PeriphCLKInitTypeDef PeriphClkInit; /**Initializes the CPU, AHB and APB busses clocks */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } /**Initializes the CPU, AHB and APB busses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC; PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV6; if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } /**Configure the Systick interrupt time */ HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000); /**Configure the Systick */ HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK); /* SysTick_IRQn interrupt configuration */ HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); } /* ADC1 init function */ static void MX_ADC1_Init(void) { ADC_ChannelConfTypeDef sConfig; /**Common config */ hadc1.Instance = ADC1; hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE; hadc1.Init.ContinuousConvMode = DISABLE; hadc1.Init.DiscontinuousConvMode = DISABLE; hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; hadc1.Init.NbrOfConversion = 1; if (HAL_ADC_Init(&hadc1) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } /**Configure Regular Channel */ sConfig.Channel = ADC_CHANNEL_1; sConfig.Rank = 1; sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5; if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } } /* USART1 init function */ static void MX_USART1_UART_Init(void) { huart1.Instance = USART1; huart1.Init.BaudRate = 115200; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; if (HAL_UART_Init(&huart1) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } } /* USART3 init function */ static void MX_USART3_UART_Init(void) { huart3.Instance = USART3; huart3.Init.BaudRate = 115200; huart3.Init.WordLength = UART_WORDLENGTH_8B; huart3.Init.StopBits = UART_STOPBITS_1; huart3.Init.Parity = UART_PARITY_NONE; huart3.Init.Mode = UART_MODE_TX_RX; huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart3.Init.OverSampling = UART_OVERSAMPLING_16; if (HAL_UART_Init(&huart3) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } }
What testing / investigation / debugging have you done?
Why do you think this issue has anything to do with the Keil tools?
https://www.avrfreaks.net/comment/2418156#comment-2418156 - and look at the rest of that thread for tips on how to monitor what's happening over a serial comms link...