OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 15716|回复: 3

芯片是STM32f103C8t6时,写程序调用库函数的问题

[复制链接]

11

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2011-5-5
在线时间
0 小时
发表于 2011-5-29 15:16:10 | 显示全部楼层 |阅读模式
这几天学校要求我们用STM32f103C8t6实现温度显示实验,用的是L1602,我用的是SYSTEM文件夹的东西,总是会报错,显示GPIO_WriteBit未定义。这个我很不解


以下是1602驱动程序
1602.c:
#include"stm32f10x_lib.h"
#include "1602.h"
/***********************************************************************/
void E(u8 i)
{
    GPIO_WriteBit(GPIOA, GPIO_Pin_1, (BitAction)i);                               
}

void RS(u8 i)    
{
    GPIO_WriteBit(GPIOB, GPIO_Pin_1, (BitAction)i);                               
}
void RW(u8 i)    
{
    GPIO_WriteBit(GPIOB, GPIO_Pin_2, (BitAction)i);                       
}

void DATA(u8 data)
{
      int i;
      u8 table[8]={0,0,0,0,0,0,0,0};
      for(i=0;i<8;i++)
      {
         table=data%2;
         data=data/2;
      }

      for(i=7;i>=0;i--)
      {
        GPIO_WriteBit(GPIOB, GPIO_Pin_13,(BitAction)table);
        GPIO_WriteBit(GPIOB, GPIO_Pin_14,(BitAction)1)    ;
        GPIO_WriteBit(GPIOB, GPIO_Pin_14,(BitAction)0) ;
       }


        GPIO_WriteBit(GPIOB, GPIO_Pin_15,(BitAction)1);   
       GPIO_WriteBit(GPIOB, GPIO_Pin_15,(BitAction)0);


}

void write_com(u8 data)//1602命令函数     写命令或写地址
{
    RS(0);
       DATA(data);
    E(0);
    delay(10);
    E(1);
    delay(10);
}
void write_data(u8 data)         //写数据
{
    RS(1);
    DATA(data);
    E(0);
    delay(10);
    E(1);
    delay(10);
}

void delay(uint a)
{
    int i,j;
    for(i=0; i<=a; i++)
    for(j=0;j<=80;j++);

}
/***********************************************************************/
void L1602_init(void)
{
    RW(0);
    E(0);
    write_com(0x01);      //清屏
    delay(10);
    write_com(0x38);       //设置成16*2,5*7点阵
    delay(10);
    write_com(0x0c);    //显示光标  光标闪烁
    delay(10);
    write_com(0x06);       //地址指针自动加一
    delay(10);

}


/********************************************************************
* 名称 : L1602_char(uchar hang,uchar lie,char sign)
* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符显示"b" ,调用该函数如下
         L1602_char(1,5,'b')
* 输入 : 行,列,需要输入1602的数据
* 输出 : 无
***********************************************************************/
void L1602_char(uchar hang,uchar lie,char sign)
{
    uchar a;
    if(hang == 1) a = 0x80;
    if(hang == 2) a = 0xc0;
    a = a + lie - 1;
    write_com(a);
    write_data(sign);
}
/********************************************************************
* 名称 : L1602_string(uchar hang,uchar lie,uchar *p)
* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下
          L1602_string(1,5,"ab cd ef;")
* 输入 : 行,列,需要输入1602的数据
* 输出 : 无
***********************************************************************/
void L1602_string(uchar hang,uchar lie,uchar *p)
{
    uchar a;
    if(hang == 1) a = 0x80;
    if(hang == 2) a = 0xc0;
    a = a + lie - 1;
    write_com(a);
    while(1)
    {
        if(*p == '\0') break;
        write_data(*p);
        p++;
    }
}  

1602.h:
#ifndef __1602_H
#define __1602_H

#define uchar unsigned char 
#define uint unsigned int 
void delay(uint a);
void write_com(u8 data);
void write_data(u8 data);
void L1602_init(void);
void L1602_string(uchar hang,uchar lie,uchar *p);
void L1602_char(uchar hang,uchar lie,char sign);


void DATA(u8 data);


#endif

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2011-5-5
在线时间
0 小时
 楼主| 发表于 2011-5-30 22:32:24 | 显示全部楼层
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-5-30 22:42:31 | 显示全部楼层
回复【2楼】nero2011:
---------------------------------
我不用庫的,這鳥東西,我也不懂,呵呵.
問問用庫的人吧.
對了你在工程裏面加入STM32F10X_R.LIB試試.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

26

主题

279

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2010-12-15
在线时间
0 小时
发表于 2011-6-10 16:52:42 | 显示全部楼层
geili给力了
STM32芯片---上海银洋电子021-53086303
欢迎来电15900733302??采购找张经理
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 15:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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