A
amila133
Guest
Мені вдалося набрати телефон за допомогою ПОС.Мій телефон тільки підтримка формату PDU.Я вивчав про формат PDU і я відправив SMS використанням Hyperterminal в ПК через послідовний порт.
Але коли я звернувся до тієї ж методологією ПІК вона не працює.
Мені потрібен код, наприклад, робити it.If у вас є, будь ласка надішліть мені.Це мій код.
Код:Int = 0;
Int J = 0;
вакуум основних () (сопзЬ іпзхдпей сЬаг пункт [3] = "AT";
сопзЬ іпзхдпей сЬаг pdumode [10] = "AT CMGF = 0" / / вибрати режим PDU (а даний нам 1 дається в текстовому режимі)
сопзЬ іпзхдпей сЬаг набір [17] = "ATD0716530115, \ г \ п";
сопзЬ іпзхдпей сЬаг tpdu_length [11] = "AT CMGS = 16"; / / довжина повідомлення
сопзЬ іпзхдпей сЬаг message1 [47] = "069149170000F311000B914917560311F50000AA02C822" / / повідомлення
непідписаних короткий отримати;
/ / ToPDU ("Це просто відправити смс-повідомлення", відправити);Usart_Init (9600);
TRISB = 0;
PORTB = 0;в той час як (1) (для (я = 0; я <3; я ) (
Usart_Write (пункт [я]); / / типу на
Delay_ms (200);
)
Usart_Write (0x0D);
якщо (Usart_Data_Ready ()) (
PORTB = 1;
Delay_ms (4000);
PORTB = 0; / / встановити pdumode
для (я = 0; я <10; я ) (
/ / Якщо (команда1 [я] == '\ 0') перерви;
Usart_Write (pdumode [я]);
Delay_ms (200);
)
Usart_Write (0x0D);
якщо (Usart_Data_Ready ()) (
PORTB = 1;
Delay_ms (4000);
PORTB = 0;
для (я = 0; я <11; я ) (
/ / Якщо (команда1 [я] == '\ 0') перерви;
Usart_Write (tpdu_length [я]); / / довжина повідомлення
Delay_ms (200);
)Usart_Write (0x0D) / / введіть
якщо (Usart_Data_Ready ()) (
PORTB = 1;
Delay_ms (4000);
PORTB = 0;
для (я = 0; я <47; я ) (/ / відправити повідомлення
/ / Якщо (команда1 [я] == '\ 0') перерви;
Usart_Write (message1 [я]);
Delay_ms (200);
)
PORTB = 1;
Delay_ms (500);
PORTB = 0;Usart_Write (26); / / Ctrl Z
PORTB = 1;
Delay_ms (7000);
PORTB = 0;
якщо (Usart_Data_Ready ()) (
для (я = 0; я <17; я ) (/ / набрати дійсно починають
якщо (наберіть [я] == '\ 0') перерви;
Usart_Write (наберіть [я]);
Delay_ms (200);
)PORTB = 1;
Delay_ms (1000);
PORTB = 0)
)
)
)
)
Але коли я звернувся до тієї ж методологією ПІК вона не працює.
Мені потрібен код, наприклад, робити it.If у вас є, будь ласка надішліть мені.Це мій код.
Код:Int = 0;
Int J = 0;
вакуум основних () (сопзЬ іпзхдпей сЬаг пункт [3] = "AT";
сопзЬ іпзхдпей сЬаг pdumode [10] = "AT CMGF = 0" / / вибрати режим PDU (а даний нам 1 дається в текстовому режимі)
сопзЬ іпзхдпей сЬаг набір [17] = "ATD0716530115, \ г \ п";
сопзЬ іпзхдпей сЬаг tpdu_length [11] = "AT CMGS = 16"; / / довжина повідомлення
сопзЬ іпзхдпей сЬаг message1 [47] = "069149170000F311000B914917560311F50000AA02C822" / / повідомлення
непідписаних короткий отримати;
/ / ToPDU ("Це просто відправити смс-повідомлення", відправити);Usart_Init (9600);
TRISB = 0;
PORTB = 0;в той час як (1) (для (я = 0; я <3; я ) (
Usart_Write (пункт [я]); / / типу на
Delay_ms (200);
)
Usart_Write (0x0D);
якщо (Usart_Data_Ready ()) (
PORTB = 1;
Delay_ms (4000);
PORTB = 0; / / встановити pdumode
для (я = 0; я <10; я ) (
/ / Якщо (команда1 [я] == '\ 0') перерви;
Usart_Write (pdumode [я]);
Delay_ms (200);
)
Usart_Write (0x0D);
якщо (Usart_Data_Ready ()) (
PORTB = 1;
Delay_ms (4000);
PORTB = 0;
для (я = 0; я <11; я ) (
/ / Якщо (команда1 [я] == '\ 0') перерви;
Usart_Write (tpdu_length [я]); / / довжина повідомлення
Delay_ms (200);
)Usart_Write (0x0D) / / введіть
якщо (Usart_Data_Ready ()) (
PORTB = 1;
Delay_ms (4000);
PORTB = 0;
для (я = 0; я <47; я ) (/ / відправити повідомлення
/ / Якщо (команда1 [я] == '\ 0') перерви;
Usart_Write (message1 [я]);
Delay_ms (200);
)
PORTB = 1;
Delay_ms (500);
PORTB = 0;Usart_Write (26); / / Ctrl Z
PORTB = 1;
Delay_ms (7000);
PORTB = 0;
якщо (Usart_Data_Ready ()) (
для (я = 0; я <17; я ) (/ / набрати дійсно починають
якщо (наберіть [я] == '\ 0') перерви;
Usart_Write (наберіть [я]);
Delay_ms (200);
)PORTB = 1;
Delay_ms (1000);
PORTB = 0)
)
)
)
)