天线|RF射频
直播中

李昕一

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

ATK-SIM900A GSM/GPRS模块程序乱码

    下载了ATK-SIM900A GSM/GPRS模块的资料! 然后移植了一部分 自己尝试在UCOSII上跑  直接程序上面串口2配置发送的是乱码 改了一下用之前自己配置好的库函数能发送了!
其中
void u2_printf(char* fmt,...)  {  va_list ap;va_start(ap,fmt);vsprintf((char*)USART2_TX_BUF,fmt,ap);va_end(ap);// while(DMA1_Channel7->CNDTR!=0);//等待通道7传输完成   //UART_DMA_Enable(DMA1_Channel7,strlen((const char*)USART2_TX_BUF)); //通过dma发送出去 UART2Write(USART2_TX_BUF,strlen((const char*)USART2_TX_BUF));}改成了这样
但是运行程序的时候发现这个函数又问题
ATNews_Semp=OSSemCreate(0);//创建完成 ATNews_Semp的地址是0x20000144
   
    u2_printf("%srn",cmd);//发送命令}#ifdef OS_tiCKS_PER_SECif(ack&&waittime)//需要等待应答{   OSSemPend(ATNews_Semp,0,&err); //到这里来的时候变成了0x0800006f1
运行完这个函数之后 ATNews_Semp的地址也变了!注释掉  u2_printf("%srn",cmd);//发送命令 就正常!
这个是什么原因呢??

回帖(3)

颜廷波

2019-1-10 17:24:13
是不是任务堆栈小了?
举报

史岩超

2019-1-10 17:41:23
谢谢原子哥! 我把任务堆栈改大一点就好了  为什么这个函数和任务堆栈有关系呢???
举报

王敏

2019-1-10 17:51:25
局部变量多呗。
举报

更多回帖

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