STM32
直播中

邬连拓

7年用户 150经验值
私信 关注
[问答]

关于stm32和TC35i的通信问题谁来解答一下

这个是我的简单测试程序:
#include "STM32f10x_lib.h"
#include "sys.h"
#include "usart.h"     
#include "delay.h"   
#include "led.h"
#include "key.h"
#include "stdio.h"

int main(void)
{      
   
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72);      //延时初始化
uart_init(72,9600);
   printf("ATn");
     while(1) ;
}
我使用的usart.h和usart.c都是SYSTEM中的模块。
这个程序能不能发送出去ATn这几个命令?我将stm32和TC35i连接好,运行程序,再利用串口从TC35i中读取出来,但是始终只有Tn,这个是什么原因,是不是
串口没有初始化正确

回帖(8)

陈思伊

2020-7-17 13:23:42
用最新版本的代码试试.
举报

李艳

2020-7-17 13:38:20
补充说明,现在解决了数据丢失的问题,使用
void GSM_Call(char *num)
{
 u8 t;
 for(t=0;t<17;t++)
 {
  while((USART1->SR&0X40)==0);//等待发送结束
  USART1->DR=*(num+t);
  }

但是STM32发送和TC35i接收的数据相同,利用串口发现一样,为什么tc35i还是不工作啊
下面是我的主程序,请帮忙分析下
#include "stm32f10x_lib.h"
#include "sys.h"
#include "usart.h"    
#include "delay.h"  
#include "led.h"
#include "key.h"
//#include "stdio.h"
//Mini STM32 开发板范例代码 1
// 跑马灯实验
// 发烧友@ALIENTEK
//2010.5.27   

char num[]="ATD15151869086F;r";
 
void GSM_Call(char *num)
{
 u8 t;
 for(t=0;t<17;t++)
 {
  while((USART1->SR&0X40)==0);//等待发送结束
  USART1->DR=*(num+t);
  }

int main(void)
{      
 
 Stm32_Clock_Init(9); //系统时钟设置
 delay_init(72);      //延时初始化
 uart_init(72,9600);
 LED_Init();      //初始化与 LED 连接的硬件接口
 //KEY_Init();
  LED2=0;
  GSM_Call(num);
  while(1);
 
}
下面是我用串口测试的结果

stm32发送 ATD15151869086F;同时HEX格式为41  54  44  31  35  31  35  31  38  36  39  30  38  36  46  3B  0D
从tc35i接收到的ATD15151869086F;同时HEX格式为41  54  44  31  35  31  35  31  38  36  39  30  38  36  46  3B  0D
但是GSM就是不工作,这个是什么情况
举报

h1654155275.5714

2020-7-17 13:50:54
请问到那边下最新版本啊
举报

马杰

2020-7-17 14:06:16
2楼你已经找到答案了.
至于你的新问题,建议直接接串口调试助手进行测试.OK了再连接到STM32.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分