社区导航

 

搜索
查看: 3369|回复: 4

[原创] 近期程序.GPS接收显示

[复制链接]

1183

TA的帖子

0

TA的资源

禁止发言

荣誉会员勋章

发表于 2011-6-15 23:43 | 显示全部楼层 |阅读模式
用到了定时器,串口DMA.程序写的应该是比较规范了

重点解决了串口DMA方式接收.不能连续收不同大小数据的问题

只贴main函数了~

/*******************************************************************************
* Function Name  : main
* Description    : Main program
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
int main(void)
{
#ifdef DEBUG
  debug();
#endif
/* System Clocks Configuration */
RCC_Configuration();
/* NVIC configuration */
NVIC_Configuration();
/* Configure the GPIO ports */
GPIO_Configuration();
USART2_Configuration(); //  uart初始化
//USART1_Configuration();
//DMA_Configuration();
TIM_Configuration();//初始化定时器
/*   USART2_Configuration(); //  uart初始化
UART1Write((u8*)"\r\n串口1初始化成功.....\r\n",sizeof("串口1初始化成功.....")) ;
UART1Write((u8*)"\r\n Welcome to www.PowerAVR.com \r\n",sizeof("Welcome to www.PowerAVR.com"));  */
/* Output a message on Hyperterminal using printf function */
//printf("\n\rUSART Printf Example: retarget the C library printf function to the USART\n\r");

LCD_Init();
POINT_COLOR=BLUE;//设置字体为蓝色 

LCD_ShowString(30,30,"system status:");
LCD_ShowString(30,50,"please press WAKEUP");

LCD_ShowString(30,100,"GPS data:");
LCD_ShowString(30,115,(u8*)GPSdata);

LCD_ShowString(30,200,"location and time:");


TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);



while(!GPSstart);
LCD_Fill(30, 50, 200, 70,WHITE);

while(1)
{
USART1_Configuration();
DMA_Configuration();


LCD_ShowString(30,50,"please wait...");
TIM_Cmd(TIM2, ENABLE);

while(!timeup);
timeup=0;
GPSledon;
TIM_Cmd(TIM2, DISABLE);
LCD_ShowString(30,50,"getting GPS data...");
USART_DMACmd(USART1, USART_DMAReq_Rx, ENABLE); 
DMA_Cmd(DMA1_Channel5, ENABLE);
// while(!DMAflag);
while (DMA_GetFlagStatus(DMA1_FLAG_TC5) == RESET);//while(!(DMA1->ISR&(1<<17)));//等待通道5传输完成
USART_ClearFlag(USART1,USART_FLAG_TC);
LCD_Fill(30, 50, 200, 70,WHITE);
LCD_ShowString(30,115,(u8*)GPSdata);
GPSledoff;
if(GPSdataformat())
{
LCD_ShowString(30,220,(u8*)location);
}

}
}

此帖出自stm32/stm8论坛

回复

使用道具 举报

1044

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2011-6-16 08:49 | 显示全部楼层
如果能看到显示效果更好些

回复

使用道具 举报

2282

TA的帖子

0

TA的资源

至上芯片

Rank: 13Rank: 13Rank: 13Rank: 13

荣誉会员勋章

发表于 2011-6-17 10:17 | 显示全部楼层

回复 楼主 astwyg 的帖子

程序简单了点,建议楼主增加数据解析部分
处处留心皆学问!

回复

使用道具 举报

1183

TA的帖子

0

TA的资源

禁止发言

荣誉会员勋章

 楼主| 发表于 2011-6-17 13:11 | 显示全部楼层

回复 沙发 drjloveyou 的帖子

等完善了吧~现在刚开始

回复

使用道具 举报

1183

TA的帖子

0

TA的资源

禁止发言

荣誉会员勋章

 楼主| 发表于 2011-6-17 13:11 | 显示全部楼层

回复 板凳 daicheng 的帖子

嗯 还在一步步来~~

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/7 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

词云| Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-7-13 22:19 , Processed in 0.219447 second(s), 26 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表