This repository is no longer maintained A better and well documented library for gsm written from scratch https://github.com/danyhm/lib_gsm
I hope use it and enjoy.
I use Stm32f407vg and Keil Compiler and Stm32CubeMX wizard.
Please Do This ...
1) Enable FreeRTOS.
2) Config your usart and enable RX interrupt and TX DMA on CubeMX.
3) If you want Turn On By Microcontroller, One control Pin needed. (PowerKey>>>>output,open drain,default to SET)
PowerKey connect to Sim800 Power Key.(if Needed,See Sim80xConfig.h)
4) Select "General peripheral Initalizion as a pair of '.c/.h' file per peripheral" on project settings.
5) Config your Sim80xConfig.h file.
6) Add Sim80x_RxCallBack() on usart interrupt routin.
7) call Sim80x_Init(osPriorityLow) on your app.
8) Config your app on Sim80xUser.c,GsmUser.c,BlutoothUser.c,GprsUser.c.
Notes:
1- To use UnicodeText you must supply the msg in utf8 format. in you IDE look for an option to save the file as utf8 instead of ANSI
2- Make sure you have enough FREERTOS heap or else the tasks would fail to be created.