CSMP各个参数的意思

1.CSMP各个参数的意思
按照不同的位进行介绍参照协议:23040 9.2.3
Fo:
TP SRR TP SRI TP VPF TP MMS TP MTI
5 4 3 2 1 0
①bit 1 0 两位表示 SMS_SUBMIT,取为0 1时方向是手机->消息中心,还有三种取值这里不介绍。
②bit 2 取值 0 表示 后续没有短信息要发送;
取值 1 表示 后续还有短信息。

③bit 4 取值0 状态报告不返回消息实体
取值1 状态报告返回消息实体
④ bit 5 取值 0 关闭传送回报
取值 1 打开传送回报。
通常情况下系统默认为010001即为0X11 十进制为17(此时没有状态报告回报)
默认值17: 010001
VP:消息发出去之前保存在短信中心的时间 无法模拟实际功能,计算方法如下:

  1. 0 - 143 对应的保留时间为: (vp + 1)*5 分钟,最大为12小时 2) 144-167 对应的保留时间为: 12小时 + (vp - 143)*30分钟, 最大为24小时
  2. 168-196 对应的保留时间为: (vp - 166) * 1 天 4) 197 - 255 对应时间为: (vp - 192)*1 星期
    DCS: TP Data Coding Scheme

PID:通常设置为0
Bits 5…0 indicate the following:
Bit 5, if set to 0, indicates the text is uncompressed
Bit 5, if set to 1, indicates the text is compressed using the compression algorithm
Bit 4, if set to 0, indicates that bits 1 to 0 are reserved and have no message class meaning
Bit 4, if set to 1, indicates that bits 1 to 0 have a message class meaning
Bits 3 and 2 indicate the character set being used, as follows
Bit3 bit2
0 0 GSM 7 bit default alphabet
0 1 8bit
1 0 UCS2 (16bit)
1 1 Reserved
bit1 bit0
0 0
0 0 Class 0
0 1 Class 1 Default meaning: ME-specific.
1 0 Class 2 (U)SIM specific message
1 1 Class 3 Default meaning: TE specific

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
void SIM900A_Init(void) { USART_InitTypeDef USART_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1, ENABLE); // 配置USART1的GPIO GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); // 配置USART1 USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); USART_Cmd(USART1, ENABLE); // 等待SIM900A模块启动 delay_ms(5000); } void SIM900A_SendCommand(char* command) { while(*command) { USART_SendData(SIM900A_USART, *command++); while(USART_GetFlagStatus(SIM900A_USART, USART_FLAG_TC) == RESET); } } void SIM900A_SendSMS(char* phoneNumber, char* message) { SIM900A_SendCommand("AT+CMGF=1"); // 设置短信格式为文本模式 SIM900A_SendCommand("AT+CMGS=\"+86"); // 设置手机号码 SIM900A_SendCommand(phoneNumber); SIM900A_SendCommand("\""); SIM900A_SendCommand(message); // 发送短信内容 USART_SendData(SIM900A_USART, 0x1A); // 发送Ctrl+Z结束短信 while(USART_GetFlagStatus(SIM900A_USART, USART_FLAG_TC) == RESET); } void SIM900A_SendSMS_Chinese(char* phoneNumber, char* message) { char ucs2Message[200]; u8 i; u8 j; SIM900A_SendCommand("AT+CMGF=0"); // 设置短信格式为PDU模式 SIM900A_SendCommand("AT+CSCS=\"UCS2\""); // 设置字符集为UCS2 SIM900A_SendCommand("AT+CSMP=17,167,0,8"); // 设置短信参数 SIM900A_SendCommand("AT+CMGS=\"+86"); // 设置手机号码 SIM900A_SendCommand(phoneNumber); SIM900A_SendCommand("\""); for(i = 0, j = 0; i < strlen(message); i += 2, j += 4) { sprintf(&ucs2Message[j], "%02X%02X", message[i+1], message[i]); } ucs2Message[j] = '\0'; SIM900A_SendCommand(ucs2Message); // 发送短信内容 USART_SendData(SIM900A_USART, 0x1A); // 发送Ctrl+Z结束短信 while(USART_GetFlagStatus(SIM900A_USART, USART_FLAG_TC) == RESET); }
06-12

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值