|
發布時間: 2019-5-19 13:08
正文摘要:程序見附件,求大神幫忙看看哪里出錯了,LCD沒法正常顯示 #include "delay.h" #include "stm32f10x.h" #include "lcd1602.h" #include "sys.h" #include "usart.h" #includ ... |
w1179benp 發表于 2019-5-23 20:40 LCD能正常顯示,但是加上DS18B20之后,溫度沒法正常顯示出來,脈沖計數也是 |
| 建議:先單寫很“干凈”的LCD驅動部分,顯示正常了,再一個一個增加其它部分。出問題便于檢查 |
w1179benp 發表于 2019-5-21 11:04 void LCD1602_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC,ENABLE);//使能PB,PD端口時鐘 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //開漏輸出模式 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度為50MHz GPIO_Init(GPIOC, & GPIO_InitStructure); //初始化GPIOC0~7 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出模式 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度為50MHz GPIO_Init(GPIOB, & GPIO_InitStructure); //初始化GPIB10,11,12 } 改成這樣還是不能顯示 |
| 感覺LCD1602的數據口和控制口應該用不同的端口,否則在賦予數據或命令時,控制端的狀態就不在所需狀態了 |