4G模塊連接sct89c52RC(最小系統版)中斷程序沒有反應,但是發送數據是正常的
1.4G模塊直連usb-ttl模塊是正常的
2.usb-ttl連接單片機也是正常的
3.4G模塊txd插到usb-ttl,rxd查到單片機也是正常的
就只是單片機直連4G模塊有問題
7dbb0092dc33efa20cb8e776949d4be.jpg (144.35 KB, 下載次數: 37)
下載附件
2023-4-25 22:34 上傳
- #include <REGX52.H>
- #include <stdio.h>
- //定義類型
- typedef unsigned int u16;
- typedef unsigned char u8;
- //宏定義波特率發生器的載入值 9600
- #define RELOAD_COUNT 0xFA
- //#define RELOAD_COUNT 0xF3
- sbit LED6 = P2^6; //led7位置燈
- static u8 i=0;
- u8 Buffer[10];
- u8 isserver = 1;
- u8 ISSUCCESS = 0; //是否連接成功
- //睡眠
- void delay_10us(u16 ten_us)
- {
- while(ten_us--);
- }
- void delay(u16 len,u16 s){
- while(len--){
- delay_10us(s);
- }
- }
- //串口發送數據
- void UART_SendData(u8 dat)
- {
- ES=0; //關閉串口中斷
- TI=0; //清發送完畢中斷請求標志位
- SBUF=dat; //發送
- while(TI==0); //等待發送完畢
- TI=0; //清發送完畢中斷請求標志位
- ES=1; //允許串口中斷
- }
- //發送指令
- void SendCmd(u8 *pbuf)
- {
- while(*pbuf!='\0') //遇到空格跳出循環
- {
- UART_SendData(*pbuf);
- delay_10us(5);
- pbuf++;
- }
- delay_10us(5);
- UART_SendData('\r');//回車
- delay_10us(5);
- UART_SendData('\n');//換行
- delay_10us(2000);
- }
- //發送消息到服務端,只是多加了發送數據的指令
- void SendData(u8 *pbuf)
- {
- SendCmd("AT+MIPSEND=1,10");
- while(*pbuf!='\0') //遇到空格跳出循環
- {
- UART_SendData(*pbuf);
- delay_10us(5);
- pbuf++;
- }
- delay_10us(5);
- UART_SendData('\r');//回車
- delay_10us(5);
- UART_SendData('\n');//換行
- // delay_ms(10);
- }
- //串口設置
- void UART_Init(void)
- {
- SCON|=0X50; //設置為工作方式1
- TMOD|=0X20; //設置計數器工作方式2
- PCON=0X80; //波特率加倍
- TH1=RELOAD_COUNT; //計數器初始值設置
- TL1=TH1;
- ES=0; //關閉接收中斷
- EA=1; //打開總中斷
- TR1=1; //打開計數器
- ET1=0;
- // TI=1; //發送中斷標記位,如果使用printf函數的必須設置
- }
- void main(){
- LED6=0;
- UART_Init();
-
- while(1){
- if(isserver){
- delay(5,50000);
- SendCmd("AT+CGDCONT=1,\"IP\",\"CMIOT\"");
- delay(5,50000);
- SendCmd("AT+CGACT=1,1");
- delay(5,50000);
- SendCmd("AT+MIPOPEN=1,\"TCP\",\"106.13.207.79\",11112");
- delay(5,50000);
- SendCmd("{id:A0002}");
- }
-
- }
-
- }
- //中斷程序
- void UartIsr(void) interrupt 4
- {
- if (RI == 1) //當硬件接收到一個數據時,RI會置位
- {
- SendCmd("接收消息\n");
- LED6 = 1;
- RI = 0;
- }
- }
復制代碼
|