初级会员

- 积分
- 170
- 金钱
- 170
- 注册时间
- 2013-5-15
- 在线时间
- 0 小时
|

楼主 |
发表于 2015-4-30 17:08:01
|
显示全部楼层
回复【8楼】正点原子:
---------------------------------
现在又有个新问题,我使用串口2来发送GSM短信,以下四个函数
void TIM4_Set(u8 sta);
void TIM4_Init(u16 arr,u16 psc);
void UART_DMA_Config(DMA_Channel_TypeDef*DMA_CHx,u32 cpar,u32 cmar);
void UART_DMA_Enable(DMA_Channel_TypeDef*DMA_CHx,u16 len);
在usart1.c中重复定义了,我把usart2.c中重复部分删除了,sim900a.c原先包含头文件usart2.h,现在再补上usart1.h,我觉得这样应该没影响,sim900a功能应该照样能实现,但是现在跟踪发现u8 sim900a_send_cmd(u8 *cmd,u8 *ack,u16 waittime)函数中的if(USART2_RX_STA&0X8000)//收到期待的应答结果
{
if(sim900a_check_cmd(ack))break;//得到有效数据
USART2_RX_STA=0;
}
跳不到{},也就是说USART2_RX_STA&0X8000一直为0,不知道为什么,,我检查了串口2中断使能什么的都打开了。。。求教育orz |
|