新手入门
- 积分
- 19
- 金钱
- 19
- 注册时间
- 2016-11-15
- 在线时间
- 2 小时
|
本帖最后由 pcwebmaster 于 2016-11-23 20:10 编辑
#include "usart3.h"
#include "sim900a.h"
#include <string.h>
//ALIENTEK探索者STM32F407开发板 扩展实验4
//技术支持:www.openedv.com
//淘宝店铺:http://eboard.taobao.com
//广州市星翼电子科技有限公司
//作者:正点原子 @alientek
void LedInit(void)
{
GPIO_InitTypeDef *GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能GPIOF时钟
//GPIOF9,F10初始化设置
GPIO_InitStructure->GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
GPIO_InitStructure->GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
GPIO_InitStructure->GPIO_OType = GPIO_OType_PP;//推挽输出
GPIO_InitStructure->GPIO_Speed = GPIO_Speed_100MHz;//100MHz
GPIO_InitStructure->GPIO_PuPd = GPIO_PuPd_UP;//上拉
GPIO_Init(GPIOF, GPIO_InitStructure);//初始化
GPIO_ResetBits(GPIOF,GPIO_Pin_9);//F9灯亮
GPIO_SetBits(GPIOF,GPIO_Pin_10);//F10灯灭
}
//s8 SendDataBuff[]="abcd";//{'a','b','c','d'};
//s8 str2[]={0x31,0x32,0x33,0x34,0x35};
s8 *SendBuffer[4] = {"abcd","12345","abcde12345"};
u8 sim900a_send_Http(s8 *data,u8 *ack,u16 waittime)
{
u8 res=0;
u8 *Strend="\"";
u8 *cmd = "AT+HTTPPARA=\"URL\",\"http://221.*.*.*:**80/?";
USART3_RX_STA=0;
if((u32)cmd<=0XFF)
{
while((USART3->SR&0X40)==0);//等待上一次数据发送完成
USART3->DR=(u32)cmd;
}
else
{
u3_printf("%s%s%s\r\n",cmd,data,Strend);//发送命令
//printf("%s%s%s\r\n",cmd,data,Strend);//测试字符串连接情况
}
if(ack&&waittime)//需要等待应答
{
while(--waittime)//等待倒计时
{
delay_ms(10);
if(USART3_RX_STA&0X8000)//接收到期待的应答结果
{
if(sim900a_check_cmd(ack))break;//得到有效数据
USART3_RX_STA=0;
}
}
if(waittime==0)res=1;
}
return res;
}
//SendBuffer[0]应该返回:"xyz"__server
//SendBuffer[1]应该返回:"56789"__server
//SendBuffer[2]应该返回:"abcde12345"__server
//注意字符串数组千万不可越界,否则会造成无法通讯
int main(void)
{
... ...
}
串口调试效果图
http://user.qzone.qq.com/719778789/blog/1479902722
|
|