注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题

ddllxxrr

个性签名:http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr

留言板

facelist doodle涂鸦板

您需要登录后才可以留言 登录 | 注册


azza333 2019-8-15 16:43
您好
LY941128 2018-2-1 21:04
你好,就是那个老美的滤波器的设计资源的第二部分下不了了。。。
泉盛电子 2014-11-15 10:41
...
307989542 2013-6-19 11:35
专业PCB生产厂家
板厚0.8--1.6 喷锡
尺寸5x5cm做10pcs之内50元
尺寸10* 10cm做10pcs之内100元(双面板所有拼版一款加50)
标准算法:(对数量及大小不符合以上规定的按下面算法进行)
货款:工程费+菲林费+板费 (工程费100元 菲林费5分/C㎡ 板费:5分/C㎡)
单,双层板: (杂油一律不加收如何费用)
(喷锡无铅或者有铅工艺任选,不加收费用)
公司推行单双面12H 24H 48H 快速打样加急出货(免收测试费,飞针测试出货)
12H加急费500元 24小时加急板 加急费200元 48小时加急板 100元
批量价格:380元/平米起
联系人: 侯R
电话:13510547961 直线电话:0755-61229893
QQ : 1433357429 1935667401
邮箱:houxiaoenpcb@163.com工厂地址:深圳市龙岗区坪地镇同富裕工业区B3栋
626qinxiaomei 2013-4-22 09:13
你好,我想问一下,你写过让LM3S8962和LM3S2110实现双机通讯的程序吗?可不可以帮帮我,我搞不懂了。。。万分感谢
cuanli007 2012-8-10 17:05
就是串口中断进不去看一下谢谢
#include "msp430x14x.h"
//#include "io430.h"
//#include "nbc430.h"
#include <stdio.h>
#include <string.h>
#include "GPS.h"
#include "LCD.h"
#include "display.h"

char    rev_buf[80];        //接收缓存     
uchar   rev_start = 0;     //接收开始标志      
uchar   rev_stop  = 0;     //接收停止标志     
uchar   gps_flag = 0;      //GPS处理标志   
uchar   change_page = 0;   //换页显示标志   
uchar   num = 0;           //


extern GPS_INFO   GPS;  //在display.c中定义,使用时要加extern
//***********************************************************************************
//定时器初始化
//***********************************************************************************
int TimerA_init(void)
{
     //定时器A设置
     CCTL0 = CCIE;                  //设置捕获/比较控制寄存器中CCIE位为1,CCR0捕获/比较功能中断为允许。
     CCR0 = 400;                      //实现4x(1/4096)=0.001S秒的定时,捕获/比较控制寄存器CCR0初值为4。
     TACTL = TASSEL_1+ID_3 + MC_1;  //时钟源选择为ACLK(32768HZ)、8分频、增计数模式(0-CCR0溢出),32768/8=4096 HZ.
       return 0;                 
}
//***********************************************************************************
//中断服务子程序
//***********************************************************************************
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A0 (void)
{
        _DINT();                     //关总中断       
        static uchar count = 0;
        CCR0 = 400;
        count++;
        if (count == 100)  //2*5秒钟   
        {
                count = 0;
                change_page++;  //换页
                if (change_page == 10)
                        change_page = 0;
        }       
        _EINT();                //开总中断
}
//**************************************************************************************************
//时钟初始化
//**************************************************************************************************
/*3种时钟源:1、DCO:内部RC振荡器 2、XTAL1(LFXTAL1):片外时精确低频时32768Hz,产生ACLK.
          3、XTAL2:片外时钟2,精确高频时钟8MHz,产生MCLK和SMCLK。
输出时钟: 1、MCLK:系统主时钟 2、SMCLK:子系统时钟 3、ACLK:辅助时钟
系统上电时,默认使用DCO时钟做为MCLK,SMCLK;使用XTAL1做为ACLK。XTAL2没有启振,没有
被使用。系统时钟可以选择使用MCK,SMCLK,ACLK其中的一种。需要系统启动后,用软件设置。*/
void init_clock()
{
    uchar i;
    BCSCTL1 &= ~XT2OFF;  //控制XT2振荡器开启(XT2OFF=0)
    BCSCTL2 |=SELM1+SELS;//选择主要时钟 MCLK:XTAL2, SMCLK:XTAL2,不分频
    //清除振荡器错误中断标志,系统启动时不稳定造成的,必须要复位
    do
    {
        IFG1 &= ~OFIFG; //清除振荡器失效标志
        i = 255;        
        while(i--);     //延时等待至少50us
    }while(IFG1&OFIFG); //判断XT2是否起振
}
void Uart_Init(void)
{
        P3SEL |= 0x30;                            // 选择P3.4和P3.5做UART通信端口
        
        UCTL0 |= ~SWRST;                         //开始设置串口   
       ME1 |= URXE0;                             // 使能USART0的发送和接受
      UCTL0 |= CHAR;                            // 选择8位字                    
      UTCTL0 |= SSEL0;                          //选择模块时钟源 ; // UCLK = ACLK
      UBR00 = 0x06;                             // 波特率9600
      UBR10 = 0x00;                             //
      UMCTL0 = 0xfb;                            // Modulation
       UCTL0 &= ~SWRST;                    //设置串口 完毕
       IE1 |= URXIE0;
}
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
                  
              
            uchar ch;
            _DINT();
             IE1 &= ~URXIE0; //ES = 0;_DINT();
        if((IFG1 & URXIFG0))
       
        {
               ch = RXBUF0;     
                if ((ch == '$') && (gps_flag == 0))  //如果收到字符'$',便开始接收           
                {
                        rev_start = 1;
                        rev_stop  = 0;
                }
       
                if (rev_start == 1)  //标志位为1,开始接收            
                {
                        rev_buf[num++] =ch;  //字符存到数组中           
                        if (ch == '\n')     //如果接收到换行           
                        {
                                rev_buf[num] = '\0';
                                rev_start = 0;
                                rev_stop  = 1;
                                gps_flag = 1;
                                num = 0;
                        }
                }
        }
       
        IFG1&=~URXIFG0;
            IE1 |= URXIE0;            //    _EINT();
             _EINT();
}
int main( void )
{
  // Stop watchdog timer to prevent time out reset
    WDTCTL = WDTPW + WDTHOLD;
    init_clock();
    P1DIR = 0XFF;P1OUT = 0XFF;
    P2DIR = 0XFF;P2OUT = 0XFF;
    P3DIR = 0XFF;P3OUT = 0XFF;
    P4DIR = 0XFF;P4OUT = 0XFF;
    P5DIR = 0XFF;P5OUT = 0XFF;
    P6DIR = 0XFF;P6OUT = 0XFF;
    uchar error_num = 0;
    Uart_Init();  //初始化串口
    Lcd_Init();          //初始化LCD   
    GPS_Init();   //初始化GPS
    TimerA_init();            //定时器初始化   
    _EINT();
    rev_stop=0;
        while(1)
        {
                if (rev_stop)   //如果接收完一行         
                {
                        CCTL0 = CCIE;        
                       
                        if (change_page % 2 == 1)  //换页     
                        {
                                if (GPS_GGA_Parse(rev_buf, &GPS))  //解析GPGGA      
                                {
                                       
                                        GPS_DisplayTwo();  //显示第二页信息
                                        error_num = 0;
                                        gps_flag = 0;
                                        rev_stop  = 0;
                                       
                                }
                                else
                                {
                                        error_num++;
                                        if (error_num >= 20) //如果数据无效超过20次               
                                        {
                                               
                                                error_num = 20;
                                                GPS_Init();     //返回初始化            
                                        }
                                        gps_flag = 0;
                                        rev_stop  = 0;
                                       
                                }

                        }
                        else
                        {
                                if (GPS_RMC_Parse(rev_buf, &GPS)) //解析GPRMC         
                                {
                                       

                                        GPS_DisplayOne();          //显示GPS第一页信息         
                                        error_num = 0;
                                        gps_flag = 0;
                                        rev_stop  = 0;
                                       
                                }
                                else
                                {
                                        error_num++;
                                        if (error_num >= 20) //如果数据无效超过20次               
                                        {
                                               
                                                error_num = 20;
                                                GPS_Init();     //返回初始化         
                                        }
                                        gps_flag = 0;
                                        rev_stop  = 0;
                                       
                                }
                        }
                }
        }
}
关闭

站长推荐上一条 /2 下一条

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

GMT+8, 2019-10-16 16:20 , Processed in 0.022964 second(s), 3 queries , Gzip On, MemCache On.

Powered by EEWORLD电子工程世界

© 2019 http://bbs.eeworld.com.cn/

返回顶部