stm32 + sim800l

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Открыл глаза
Аватара пользователя
Сообщения: 48
Зарегистрирован: Пн июл 31, 2017 10:53:04

Сообщение Cheeseman »

Пытаюсь связать GSM модуль sim800l и stm32f4 - discovery по UART. Написал программу, которая отправляет команду "AT". Ответ на неё ловлю c модуля логическим анализатором. Вывод Tx c STM подключил к RX sim800l. Вывод Tx c sim800l подключил к логическому анализатору. Сначала модуль пишет - sms ready и call ready, когда посылаю команду "AT", то он просто возвращает команду обратно (на модуле спаек нет). По напряжениям, вроде, все нормально. На Входе у модуля 4В. Светодиод редко моргает, значит связь есть. Не могу найти ошибку. Почему модуль не отвечает?

Код: Выделить всё

#include <stdint.h>
#include <stm32f4xx_hal.h>
#include <main.h>
#include <stdbool.h>

UART_HandleTypeDef UART;

uint8_t txbuf[80] = "AT";

void init_UART(void) {
	__HAL_RCC_UART4_CLK_ENABLE();
	UART.Instance = UART4;
	UART.Init.BaudRate = 9600;
	UART.Init.WordLength = UART_WORDLENGTH_8B;
	UART.Init.StopBits = UART_STOPBITS_1;
	UART.Init.Parity = UART_PARITY_NONE;
	UART.Init.Mode = UART_MODE_TX_RX;
	UART.Init.HwFlowCtl = UART_HWCONTROL_NONE;
	UART.Init.OverSampling = UART_OVERSAMPLING_16;
	HAL_UART_Init(&UART);
	HAL_NVIC_SetPriority(UART4_IRQn, 15, 0);
	HAL_NVIC_EnableIRQ(UART4_IRQn);
}

void mymain(void) {
	init_UART();
	while (1) {
		HAL_UART_Transmit(&UART, txbuf, 2, 1000);
		HAL_Delay(2000);
	}
}

//********************************************************
// настройка портов вв-выв находится в другом .с файле
// ниже отрывок. Настройка UART Rx Tx. 

  GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
  GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  GPIO_InitStruct.Pull = GPIO_PULLUP;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  GPIO_InitStruct.Alternate = GPIO_AF8_UART4;
  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
Вложения
gsm_otvet.png
(4.39 КБ) 507 скачиваний
sms_ready.png
(7.72 КБ) 702 скачивания
Реклама
Открыл глаза
Сообщения: 44
Зарегистрирован: Пт авг 09, 2013 15:16:14

Сообщение sobs »

Команда должна заканчиваться символом CR (\r). Стр 2 SIM800 Series_AT Command Manual_V1.09.
Реклама
Ответить

Вернуться в «ARM»