佚名通过本文主要向大家介绍了lcm12864r中文资料,lcm12864r,急求,网络推手阿建急求,痒痒粉的配方 急求等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: STM32加上LCM12864R 串行连接 液晶显示问题。。急求解答。。急
描述:
程序如下
//----------------头文件声明--------------------
#include"stm32f10x_lib.h" //包含所有的头文件
#include<stdio.h>
#define UP 1
#define DOWN 0
//----------------函数声明--------------------
void RCC_Configuration(void);
void GPIO_Configuration(void);
void LCD_GPIO_Config(void);
void send_bit(u8 byte);
void write_command(u8 command);
void write_data(const u8 Data);
void write_zi( u8 *S);
void write_character(u8 address,const u8 *p);
void lcd_pos(u8 X,u8 Y);
void LCD_init(void);
void display_adc(void);
void delay_ms(u16 dly);
const unsigned char table1[]=" ADC值:";
const unsigned char table2[]="电压值:";
u16 adc=5,adc1=9;
u8 qian,bai,shi,ge;
u8 ADC_0,ADC_1,ADC_2,ADC_3,ADC_4;
/*液晶端口定义*/
#define LCD_CS(a) if (a) \
GPIO_SetBits(GPIOC,GPIO_Pin_7);\
else \
GPIO_ResetBits(GPIOC,GPIO_Pin_7)
#define LCD_SID(a) if (a) \
GPIO_SetBits(GPIOC,GPIO_Pin_6);\
else \
GPIO_ResetBits(GPIOC,GPIO_Pin_6)
#define LCD_SCLK(a) if (a) \
GPIO_SetBits(GPIOC,GPIO_Pin_8);\
else \
GPIO_ResetBits(GPIOC,GPIO_Pin_8)
#define LCD_PSB(a) if (a) \
GPIO_SetBits(GPIOC,GPIO_Pin_9);\
else \
GPIO_ResetBits(GPIOC,GPIO_Pin_9)
#define PA1 GPIOA->BSRR
#define PA0 GPIOA->BRR
#define GPIOA_ODR_A (GPIOA_BASE+0x0C)
#define GPIOA_IDR_A (GPIOA_BASE+0x08)
#define GPIOB_ODR_A (GPIOB_BASE+0x0C)
#define GPIOB_IDR_A (GPIOB_BASE+0x08)
#define GPIOC_ODR_A (GPIOC_BASE+0x0C)
#define GPIOC_IDR_A (GPIOC_BASE+0x08)
#define GPIOD_ODR_A (GPIOD_BASE+0x0C)
#define GPIOD_IDR_A (GPIOD_BASE+0x08)
#define GPIOE_ODR_A (GPIOE_BASE+0x0C)
#define GPIOE_IDR_A (GPIOE_BASE+0x08)
#define BitBand(Addr,BitNum) *((volatile unsigned long *)((Addr&0xF0000000)+0x2000000+((Addr&0xfffff)<<5)+(BitNum<<2)))
#define PAout(n) BitBand(GPIOA_ODR_A,n)
#define PAin(n) BitBand(GPIOA_IDR_A,n)
#define PBout(n) BitBand(GPIOB_ODR_A,n)
#define PBin(n) BitBand(GPIOB_IDR_A,n)
#define PCout(n) BitBand(GPIOC_ODR_A,n)
#define PCin(n) BitBand(GPIOC_IDR_A,n)
#define PDout(n) BitBand(GPIOD_ODR_A,n)
#define PDin(n) BitBand(GPIOD_IDR_A,n)
#define PEout(n) BitBand(GPIOE_ODR_A,n)
#define PEin(n) BitBand(GPIOE_IDR_A,n)
/*******************************************************************************
* Function Name : main
* Description : Main program.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
int main(void)
{
RCC_Configuration();
GPIO_Configuration();
LCD_GPIO_Config();
LCD_init();
GPIOD->CRH = 0x44444444;
GPIOD->CRL = 0x34433344; //2 3管脚 输出模式 最大速度50MHZ,通用推挽输出
while(1)
描述:
本帖最后由 u011672494 于 2014-05-15 15:23:37 编辑
现在显示不出数据啊。。求指教 哪里有问题。。串行连接 PSB--PC9,CS----PC7,SDA--PC6,SCLK---PC8.程序如下
//----------------头文件声明--------------------
#include"stm32f10x_lib.h" //包含所有的头文件
#include<stdio.h>
#define UP 1
#define DOWN 0
//----------------函数声明--------------------
void RCC_Configuration(void);
void GPIO_Configuration(void);
void LCD_GPIO_Config(void);
void send_bit(u8 byte);
void write_command(u8 command);
void write_data(const u8 Data);
void write_zi( u8 *S);
void write_character(u8 address,const u8 *p);
void lcd_pos(u8 X,u8 Y);
void LCD_init(void);
void display_adc(void);
void delay_ms(u16 dly);
const unsigned char table1[]=" ADC值:";
const unsigned char table2[]="电压值:";
u16 adc=5,adc1=9;
u8 qian,bai,shi,ge;
u8 ADC_0,ADC_1,ADC_2,ADC_3,ADC_4;
/*液晶端口定义*/
#define LCD_CS(a) if (a) \
GPIO_SetBits(GPIOC,GPIO_Pin_7);\
else \
GPIO_ResetBits(GPIOC,GPIO_Pin_7)
#define LCD_SID(a) if (a) \
GPIO_SetBits(GPIOC,GPIO_Pin_6);\
else \
GPIO_ResetBits(GPIOC,GPIO_Pin_6)
#define LCD_SCLK(a) if (a) \
GPIO_SetBits(GPIOC,GPIO_Pin_8);\
else \
GPIO_ResetBits(GPIOC,GPIO_Pin_8)
#define LCD_PSB(a) if (a) \
GPIO_SetBits(GPIOC,GPIO_Pin_9);\
else \
GPIO_ResetBits(GPIOC,GPIO_Pin_9)
#define PA1 GPIOA->BSRR
#define PA0 GPIOA->BRR
#define GPIOA_ODR_A (GPIOA_BASE+0x0C)
#define GPIOA_IDR_A (GPIOA_BASE+0x08)
#define GPIOB_ODR_A (GPIOB_BASE+0x0C)
#define GPIOB_IDR_A (GPIOB_BASE+0x08)
#define GPIOC_ODR_A (GPIOC_BASE+0x0C)
#define GPIOC_IDR_A (GPIOC_BASE+0x08)
#define GPIOD_ODR_A (GPIOD_BASE+0x0C)
#define GPIOD_IDR_A (GPIOD_BASE+0x08)
#define GPIOE_ODR_A (GPIOE_BASE+0x0C)
#define GPIOE_IDR_A (GPIOE_BASE+0x08)
#define BitBand(Addr,BitNum) *((volatile unsigned long *)((Addr&0xF0000000)+0x2000000+((Addr&0xfffff)<<5)+(BitNum<<2)))
#define PAout(n) BitBand(GPIOA_ODR_A,n)
#define PAin(n) BitBand(GPIOA_IDR_A,n)
#define PBout(n) BitBand(GPIOB_ODR_A,n)
#define PBin(n) BitBand(GPIOB_IDR_A,n)
#define PCout(n) BitBand(GPIOC_ODR_A,n)
#define PCin(n) BitBand(GPIOC_IDR_A,n)
#define PDout(n) BitBand(GPIOD_ODR_A,n)
#define PDin(n) BitBand(GPIOD_IDR_A,n)
#define PEout(n) BitBand(GPIOE_ODR_A,n)
#define PEin(n) BitBand(GPIOE_IDR_A,n)
/*******************************************************************************
* Function Name : main
* Description : Main program.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
int main(void)
{
RCC_Configuration();
GPIO_Configuration();
LCD_GPIO_Config();
LCD_init();
GPIOD->CRH = 0x44444444;
GPIOD->CRL = 0x34433344; //2 3管脚 输出模式 最大速度50MHZ,通用推挽输出
while(1)