• Stars
    star
    194
  • Rank 193,824 (Top 4 %)
  • Language
    C
  • License
    GNU General Publi...
  • Created over 6 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

gsm module library for STM32 LL

gsm module library for STM32 LL



  • NONE RTOS Supported.
  • RTOS V1 Supported.
  • RTOS V2 Supported.

  • SIM800C tested.
  • SIM800 tested.
  • SIM800H tested.

  • Enable USART (LL Library) and RX interrupt.
  • Enable a gpio as output and open drain to connect gsm power button.
  • Add gsm and atc library to your project.
  • Configure gsmConfig.h and atcConfig.h files.
  • Add 'gsm_rxCallback()' to selected usart interrupt.
  • Add 'gsm_callback_simDetectorISR()' to sim detector interrupt. //if use sim detector
  • Call gsm_init().
  • Call gsm_loop() in infinit loop.
  • If using FREERTOS, please create a task for gsm with at least 512 word heap size.

None RTOS example:

  • file atcConfig.h
#define	_ATC_DEBUG            0       //  use printf debug
#define	_ATC_RTOS             0       //  0: no rtos    1: cmsis_os v1    2: cmsis_os v2
#define	_ATC_RXSIZE           1024    //  at-command rx buffer size
#define	_ATC_SEARCH_CMD_MAX   5       //  maximum of answer in at-command
#define	_ATC_SEARCH_MAX       10      //  maximum	of always search in buffer
#define	_ATC_RXTIMEOUT_MS     50      //  rx timeout to get new packet
  • file main.c
#include "gsm.h"

int main()
{
  gsm_init();
  gsm_power(true);
  gsm_waitForRegister(30);
  gsm_msg_send("+98xxxxxxx", "TEST MSG 1");
  while (1)
  {
    gsm_loop();
  }  
}

RTOS example:

  • file atcConfig.h
#define	_ATC_DEBUG            0       //  use printf debug
#define	_ATC_RTOS             1       //  0: no rtos    1: cmsis_os v1    2: cmsis_os v2
#define	_ATC_RXSIZE           1024    //  at-command rx buffer size
#define	_ATC_SEARCH_CMD_MAX   5       //  maximum of answer in at-command
#define	_ATC_SEARCH_MAX       10      //  maximum	of always search in buffer
#define	_ATC_RXTIMEOUT_MS     50      //  rx timeout to get new packet
  • file main.c
#include "gsm.h"

int main()
{
  ...  
}

void task_gsm(void const * argument)
{
  #if (_GSM_MAIN_POWER == 1)
    HAL_GPIO_WritePin(_GSM_PWR_CTRL_GPIO, _GSM_PWR_CTRL_PIN, GPIO_PIN_RESET);
    gsm_delay(1000);
  #endif
  gsm_init();
  gsm_power(true);
  #if(_GSM_SIM_DETECTOR == 1)
    if(HAL_GPIO_ReadPin(_GSM_SIM_DET_GPIO, _GSM_SIM_DET_PIN))
    {
      gsm_power(false);
      #if(_GSM_RTOS != 0)
        vTaskSuspend(NULL);
      #endif
    }
  #endif
  while (1)
  {
    gsm_loop();
  }
}

void task_other(void const * argument)
{
  //gsm_waitForRegister(30);
  gsm_msg_send("+98xxxxxxx", "TEST MSG 1");
  while (1)
  {    
    osDelay(10000);
  }
}

#if(_GSM_SIM_DETECTOR == 1)
void gsm_callback_simDetectorISR()
{
  gsm.status.simDetCangeInterruptFlag = 1;
  #if(_GSM_RTOS != 0)
    xTaskResumeFromISR(task_gsm);
  #endif
}
#endif

More Repositories

1

SPIF

w25qxx SPI FLASH driver for stm32 HAL
C
424
star
2

ee

EEPROM emulation for stm32.
C
190
star
3

ESP8266

Esp8266 Atcommand driver for Stm32
C
127
star
4

ds18b20

ds18b20 library for stm32 hal
C
110
star
5

ee24

24xx EEPROM library for stm32 HAL
C
104
star
6

atc

STM32 LL AT-Command parser
C
98
star
7

NMEA

GPS NMEA Library for stm32 LL
C
93
star
8

master-modbus

master modbus library for STM32 LL
C
57
star
9

ask

ASK Remote Receiver/Sender (EV1527,PT2262,PT2264 and ... )
C
52
star
10

HX711

HX711 driver for STM32 HAL
C
47
star
11

KeyPad

Matrix KeyPad Library for stm32 HAL
C
42
star
12

DHT

DHT Sensor Library for stm32 HAL
C
37
star
13

AltiumLibrary

Useful Altium pcb library (3D)
35
star
14

max31865

Max31865 library for stm32 hal
C
35
star
15

LCD-Character

4 Pin LCD character Library for STM32 HAL
C
35
star
16

gsm

gsm module library for STM32 LL
C
32
star
17

sx1278

sx1278 LoRa driver for Stm32 HAL
C
28
star
18

ATC-V2

STM32 AT Command LL library
C
21
star
19

ws281x

ws281x driver for stm32 HAL
C
21
star
20

NTC

convert ntc value to C or F
C
19
star
21

DtmfGenerator

Dtmf generator for stm32
C
19
star
22

Schematic

Useful schematics
19
star
23

FingerPrint

FingerPrint R308 6 pin Driver For Stm32 HAL library
C
18
star
24

Isd17xxx

Isd17xxx series library for stm32 hal library
C
17
star
25

MLX90614

Infrared Temperature Sensor
C
17
star
26

ff_iso

STM32 multitasking fatfs
C
15
star
27

STM32-CycloneTCP-ENC28J60

Configure file for ENC28J60 + Cyclone TCP
C
15
star
28

pmeter

AC power meter based on STM32 ADC
C
14
star
29

45dbxxx

45dbxxx library for stm32 hal
C
14
star
30

emWinTouch

xpt2046 Touch drive for STemwin
C
13
star
31

RFID

RFID EM-18,EM-19 module Library for STM32 HAL
C
13
star
32

BS81X

Serial Touch Key Library For STM32 HAL
C
12
star
33

FTP_Client

FTP Client for esp8266 Arduino
C++
12
star
34

Fingerprint-SM25-

SM25 fingerprint library for STM32
C
11
star
35

rtcF1

calendar for STM32F1 series
C
9
star
36

tm1637

tm1637 display library for STM32
C
7
star
37

ADS1110

ADS1110 Library for STM32 HAL
C
6
star
38

somfy

somfy remote receiver for stm32 platform
C
3
star
39

STM32-PACK

2
star
40

rbuf

Ring Buffer (Circular Buffer) Library for STM32
C
2
star
41

Nimaltd

1
star