你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 控制GSM模块发送彩信源码分享

[复制链接]
相思谷 发布时间:2015-1-8 22:32
如题,前阵子本人买了一块GSM模块,PTM100,实现了通过STM32控制GSM模块发送短信及彩信;
趁此机会将源码上传与大家共享,希望大家拍砖  
PS:发帖字数有限,只能发了main函数部分,其他部分在附件中,大家可自行下载查看

int main(void)
{       
        u8 count_error=0,GSM_Init_Flag=0x00;
        u8 length;
        RCC_Configuration();
        GPIO_Configuration();         
        NVIC_Configuration();
        USART_Configuration();
        gsm_count=0;
        GPIO_SetBits(GPIOA,GPIO_Pin_0);          
        GPIO_SetBits(GPIOA,GPIO_Pin_4);
        GPIO_SetBits(GPIOA,GPIO_Pin_5);          
        GPIO_SetBits(GPIOA,GPIO_Pin_6);
        GPIO_SetBits(GPIOA,GPIO_Pin_7);          
        GPIO_SetBits(GPIOA,GPIO_Pin_8);
        GSM_Init_Flag=CheckGSM();

        while(1)
        {       
                if(GSM_Init_Flag==USART_ERROR)                       
                {
                        if(count_error==0)
                        {
                                USART2_SendToPC("USART_ERROR\n",12);
                                count_error++;
                        }
                        GPIO_ResetBits(GPIOA,GPIO_Pin_0);
                        Delay_us(10000);
                        GPIO_SetBits(GPIOA,GPIO_Pin_0);
                        Delay_us(10000);
                }
                else if(GSM_Init_Flag==CIMI_ERROR)               
                {
                        if(count_error==0)
                        {
                                USART2_SendToPC("CIMI_ERROR\n",11);
                                count_error++;
                        }
               
                        GPIO_ResetBits(GPIOA,GPIO_Pin_4);
                        Delay_us(10000);
                        GPIO_SetBits(GPIOA,GPIO_Pin_4);
                        Delay_us(10000);
                }
                else if(GSM_Init_Flag==CREG_ERROR)               
                {
                        if(count_error==0)
                        {
                                USART2_SendToPC("CREG_ERROR\n",11);
                                count_error++;
                        }
                       
                        GPIO_ResetBits(GPIOA,GPIO_Pin_5);
                        Delay_us(10000);
                        GPIO_SetBits(GPIOA,GPIO_Pin_5);
                        Delay_us(10000);
                }
                else if(GSM_Init_Flag==CSQ_ERROR)                       
                {
                        if(count_error==0)
                        {
                                USART2_SendToPC("CSQ_ERROR\n",10);
                                count_error++;
                        }
                       
                        GPIO_ResetBits(GPIOA,GPIO_Pin_6);
                        Delay_us(10000);
                        GPIO_SetBits(GPIOA,GPIO_Pin_6);
                        Delay_us(10000);
                }
                else
                {       
                        count_error=0;
                        GPIO_ResetBits(GPIOA,GPIO_Pin_7);                 
                        Delay_us(10000);
                        GPIO_SetBits(GPIOA,GPIO_Pin_7);
                        Delay_us(10000);
                }

                if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1)==0)
                {
                        Delay_us(15000);
                        if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1)==0)
                        while(!GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1));
                        Message_Send(Phone_Num,Title,strlen(Title),MMS,3286);
                }
               
        }
}


main.zip

下载

9.47 KB, 下载次数: 101

收藏 评论23 发布时间:2015-1-8 22:32

举报

23个回答
相思谷 回答时间:2015-1-12 15:49:52
qzwx741 发表于 2015-1-12 14:20
Delay_us(10000),大哥这个只是玩玩的程序吧

void Delay_us(unsigned int count)
{
        unsigned int i=0;
        while(count--)
        {
                for(i=0;i<24;i++);
        }
}

这是延时函数,只是大概延时了一段时间,因为只是自己学的玩的,没那么较真
相思谷 回答时间:2015-1-9 11:30:13
zhous 发表于 2015-1-8 22:40
可惜GSM模块太贵了,不然我也搞一个

玩玩还是可以的,总归是为了学习,花点钱也值了
相思谷 回答时间:2015-1-9 11:29:47
zhous 发表于 2015-1-8 22:40
可惜GSM模块太贵了,不然我也搞一个

玩玩还是可以的,总归是为了学习,花点钱也值了
zhous 回答时间:2015-1-8 22:40:47
可惜GSM模块太贵了,不然我也搞一个
党国特派员 回答时间:2015-1-9 00:29:03
23.png
相思谷 回答时间:2015-1-9 08:47:55
自己顶一下
默默前行 回答时间:2015-1-9 12:35:50
赞一个。。。。
拼命三郎 回答时间:2015-1-9 12:35:58
支持一下,祝你早日拿到板子
pythonworld 回答时间:2015-1-9 12:38:00
多少银子买的?使用什么接口通信。
巅峰残狼 回答时间:2015-1-9 13:05:28
感谢分享,很不错哦
相思谷 回答时间:2015-1-9 13:23:19
pythonworld 发表于 2015-1-9 12:38
多少银子买的?使用什么接口通信。

不到100,串口通讯
相思谷 回答时间:2015-1-9 13:23:36
巅峰残狼 发表于 2015-1-9 13:05
感谢分享,很不错哦

谢谢支持
相思谷 回答时间:2015-1-9 13:24:00
拼命三郎 发表于 2015-1-9 12:35
支持一下,祝你早日拿到板子

嘿嘿,谢谢
相思谷 回答时间:2015-1-9 13:24:18

谢谢支持
相思谷 回答时间:2015-1-9 13:24:36
12下一页

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版