自己写的代码,用官方提供的delay函数,无法使用delay_ms

2019-07-20 23:40发布

大家有没有写代码的时候有没有遇到使用delay_ms()函数出不来的情况,用debug测试过.1.芯片F1RCT6
2.延时本来用的delay_ms(10);用debug调试时函数出不来,后来自己修改成Delaynms(10);


#include "lcd.h"
#include "delay.h"
#include "stm32f10x.h"


void Delaynms(u16 di)
{
        u16 da,db;
        for(da=0;da<di;da++)
         for(db=0;db<10;db++);
}


void sendbyte(u8 zdata)
{
        u8 i;
        for(i=0; i<8; i++)
        {
                if((zdata << i) & 0x80)
                {
                        SID_H;
                }
                else
                {
                        SID_L;
                }
                CLK_L;
                CLK_H;
        }
}
void write_com(u8 cmdcode)                                        //D′&#195;üá&#238;
{
        CS_H;
        sendbyte(0xf8);
        sendbyte(cmdcode & 0xf0);
        sendbyte((cmdcode << 4) & 0xf0);
        Delaynms(10);
}

void write_data(u8 Dispdata)                                        //D′êy&#190;Y
{
        CS_H;
        sendbyte(0xfa);
        sendbyte(Dispdata & 0xf0);
        sendbyte((Dispdata << 4) & 0xf0);
        Delaynms(10);
}


void clrram (void)                                                                                                                //&#199;&#229;3yDDRAM
{
  write_com(0x01);
  Delaynms (10);
}

void Display(u8 addr,u8 offset,u8 *hz)
        {
        write_com(addr+offset);
        Delaynms(10);
        while(*hz != '')
        {
                write_data(*hz++);
                Delaynms(10);
        }
}

void LCD_Init (void)                                                                                //ê1ó&#195;&#199;°D&#235;μ÷ó&#195;′&#203;oˉêy3&#245;ê&#188;&#187;ˉ        &#161;&#161;
{
       
        Delaynms(10);
        write_com(0x30);
        Delaynms (10);
  write_com (0x30);  //8&#206;&#187;êy&#190;Y′&#171;ê&#228;
        Delaynms (10);
  write_com (0x0c);
  Delaynms (10);
  write_com (0x01);  //&#199;&#229;&#198;á
        Delaynms (10);
  write_com (0x06);                 //&#190;2&#189;&#248;è&#235;μ&#227;éè&#182;¨
        Delaynms (10);

}


void GPIO_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);   //ê1&#196;ü&#214;&#216;&#182;¨ò&#229;ê±&#214;ó       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
        GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;        //í&#198;íìê&#228;3&#246;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //50Mê±&#214;ó&#203;ù&#182;è

        GPIO_Init(GPIOB, &GPIO_InitStructure);
        GPIO_SetBits(GPIOB, GPIO_Pin_4);
        GPIO_SetBits(GPIOB, GPIO_Pin_5);
        GPIO_SetBits(GPIOB, GPIO_Pin_6);
        GPIO_SetBits(GPIOB,GPIO_Pin_7);
}




#include "sys.h"
#include "lcd.h"
#include "stm32f10x.h"


int main(void)
{
        u8 tab1[]={"你好};

        GPIO_Config();
        LCD_Init();
        Display(Line2,1,tab1);
        while(1);
}


0条回答

一周热门 更多>