打印
[其他ST产品]

STR710烧写程序

[复制链接]
2040|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xuexuejudy|  楼主 | 2008-5-30 18:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好:
 
IAR安装后有Flash烧写程序,其中按目录找的话也有ST的。
但是实际烧写的时候可以直接用吗?
要是需要自己改的话应该改那些部分呢?

我刚学ARM不久,对IAR软件环境也不是很熟悉,请各位高手多多指教!!
沙发
sian168| | 2008-6-19 21:12 | 只看该作者

请教一下 HDLC前导码的问题 很奇怪

请问:
我们在用STR7 的HDLC做接收和发射
用示波器看到HDLC发送出来的数据帧,前导码有很多个1 
也就是说 按协议正常的数据帧应该是16个0 ,接着是帧标识...而现在16个0前面有多个1.
有什么办法可以解决?

程序如下:

void  HDLC_TX_Init(void)
{
  
    hdlc_pres=0x0000;            // hdlc pres 
    hdlc_poss=0x0000;            // hdlc poss 
    hdlc_tctl=0x0bff;            // hdlc tctl
    //hdlc_rctl=0x0000;         // hdlc rctl 
  
#ifdef    Down_500K
    hdlc_BRR=0x1007;            // hdlc BRR ,TX 7   
#else
    hdlc_BRR=0x0003;            // hdlc BRR ,TX 3 
#endif    
    hdlc_ISR=0x0000;            // hdlc ISR 
  
    hdlc_IMR=0x0000;            // hdlc IMR
}


unsigned char  HDLC_TX(unsigned char *txdata, unsigned char txlen)
{
    unsigned int TxStatus;
    unsigned long *baseP=(unsigned long *)0xC000E880;
    unsigned char i;
  
    if(txlen>200)        //
        return 1;

#ifdef    PLL
    if(g_setpll==0)
    {
        g_setpll=0xff;
        if(g_RSU_Profile&0x01)
            SetPllFreq(0x01);        //5.80GHz
        else
            SetPllFreq(0x00);        //5.79GHz
    }
#endif    
//--------------open transmitter------------------------
#ifdef frequence_exchange
    if(g_RSU_Profile&0x01)
        GPIO1_PD|=0X0004;    //GPIO1->PD   OPEN   TXVDD1   
    else
        GPIO1_PD|=0X0008;   //GPIO1->PD   OPEN   TXVDD2   
#else
    if(g_RSU_Profile&0x01)
        GPIO1_PD|=0X0008;   //GPIO1->PD   OPEN   TXVDD2   
    else
        GPIO1_PD|=0X0004;    //GPIO1->PD   OPEN   TXVDD1   
#endif
//---------------------------------------------------------

    HDLC_TX_Init(); 
    delay(20);                //
    for(i=0;i<txlen;i+=4)
    {
        *baseP=(txdata[i+3]<<24)|(txdata[i+2]<<16)|(txdata[i+1]<<8)|txdata;
        baseP++;
    }    
    hdlc_TFBCR=txlen;       // hdlc TFBCR
    hdlc_PCR=0x0002;        // hdlc PCR   
    while(1)
    {
        TxStatus= hdlc_ISR;
        if(TxStatus&0x0040)
            break;
    }
    hdlc_tctl=0x0000;       // hdlc tctl  
    hdlc_PCR=0x0000;         // hdlc PCR   
  
    GPIO1_PD&=0XFFF7;        //GPIO1->PD   STOP TXVDD2
    GPIO1_PD&=0XFFFB;        //GPIO1->PD   STOP TXVDD1
    return  0;
}

使用特权

评论回复
板凳
sian168| | 2008-6-19 21:15 | 只看该作者

晕,怎么发这里来了??

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

42

帖子

0

粉丝