大家有没有写代码的时候有没有遇到使用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′Ãüáî
{
CS_H;
sendbyte(0xf8);
sendbyte(cmdcode & 0xf0);
sendbyte((cmdcode << 4) & 0xf0);
Delaynms(10);
}
void write_data(u8 Dispdata) //D′êy¾Y
{
CS_H;
sendbyte(0xfa);
sendbyte(Dispdata & 0xf0);
sendbyte((Dispdata << 4) & 0xf0);
Delaynms(10);
}
void clrram (void) //Çå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óÃÇ°Dëμ÷óÃ′Ëoˉêy3õê¼»ˉ ¡¡
{
Delaynms(10);
write_com(0x30);
Delaynms (10);
write_com (0x30); //8λêy¾Y′«êä
Delaynms (10);
write_com (0x0c);
Delaynms (10);
write_com (0x01); //ÇåÆá
Delaynms (10);
write_com (0x06); //¾2½øèëμãé趨
Delaynms (10);
}
void GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //ê1ÄüÖض¨òåê±Öó
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; //íÆíìêä3ö
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50Mê±ÖóËù¶è
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);
}
一周热门 更多>