本帖最后由 负熵 于 2018-2-13 13:04 编辑
最近无聊想学一下stm单片机,手头有个开发板和带字库的12864液晶屏,液晶屏有个c51的参考驱动,想改成stm32的,编译后使用字库时显示不正确,用usb逻辑分/////析仪、、、测试,Rom_SCK, Rom_IN没输出。
请教下是哪里的问题?我感觉应该是gpio配置有问题。以下是我觉得可能有问题的代码:
#define RS_H GPIOA->BSRR=GPIO_Pin_2
#define RS_L GPIOA->BRR=GPIO_Pin_2
#define CS_H GPIOA->BSRR=GPIO_Pin_4
#define CS_L GPIOA->BRR=GPIO_Pin_4
#define SCLK_H GPIOA->BSRR=GPIO_Pin_0
#define SCLK_L GPIOA->BRR=GPIO_Pin_0
#define SID_H GPIOA->BSRR=GPIO_Pin_1
#define SID_L GPIOA->BRR=GPIO_Pin_1
#define REST_H GPIOA->BSRR=GPIO_Pin_3
#define REST_L GPIOA->BRR=GPIO_Pin_3
#define Rom_IN_H GPIOA->BSRR=GPIO_Pin_5
#define Rom_IN_L GPIOA->BRR=GPIO_Pin_5
#define Rom_OUT GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6)
#define Rom_SCK_H GPIOA->BSRR=GPIO_Pin_7
#define Rom_SCK_L GPIOA->BRR=GPIO_Pin_7
#define Rom_CS_H GPIOB->BSRR=GPIO_Pin_0
#define Rom_CS_L GPIOB->BRR=GPIO_Pin_0
//gpio配置
void GPIO_Config(void)
{
// SPI_InitTypeDef SPI_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
/*PC4-A0*/
// GPIO_SetBits(GPIOC, GPIO_Pin_12);//预置为高
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
//从晶联讯字库 IC 中取汉字或字符数据(1 个字节)
static uchar get_data_from_ROM( )
{
uchar i;
uchar ret_data=0;
for(i=0;i<8;i++)
{
//Rom_OUT=1;
GPIO_SetBits(GPIOA,GPIO_Pin_6);
Rom_SCK_L;
//delay_us(1);
ret_data=ret_data<<1;
if( GPIOA->IDR&GPIO_Pin_6<<6 )
ret_data=ret_data+1;
else
ret_data=ret_data+0;
Rom_SCK_H;
//delay_us(1);
}
return(ret_data);
}
厂家驱动.rar
(3.86 KB)
test.rar
(3.16 KB)
|