标题: STM32驱动DS18B20,在LCD1602显示温度以及对外部脉冲计数问题 [打印本页]

作者: CATHERIAN    时间: 2019-5-19 13:08
标题: STM32驱动DS18B20,在LCD1602显示温度以及对外部脉冲计数问题

程序见附件,求大神帮忙看看哪里出错了,LCD没法正常显示

  1. #include "delay.h"
  2. #include "stm32f10x.h"  
  3. #include "lcd1602.h"
  4. #include "sys.h"
  5. #include "usart.h"
  6. #include "ds18b20.h"
  7. #include "TIM.h"

  8. int main()
  9.        
  10. {

  11.        
  12. delay_init(); //延时函数初始化
  13. NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2
  14. uart_init(115200); //串口初始化为 115200

  15. LCD1602_Init(); //初始化LCD
  16. DS18B20_Init();
  17.         TIM3_init();
  18.        


  19.        
  20. LCD1602_ShowStr(1,0,"Temp:",16);
  21. LCD1602_ShowStr(1,1,"PF:  ",6);
  22.        
  23.        
  24.        
  25. while(1)
  26. {
  27.          DS18B20_Get_Temp();
  28.          DS18B20_disp();
  29.          TIM3_disp();
  30.    
  31. }

  32.          
  33. }

复制代码


程序附件.zip

5.74 KB, 下载次数: 68


作者: w1179benp    时间: 2019-5-21 11:04
感觉LCD1602的数据口和控制口应该用不同的端口,否则在赋予数据或命令时,控制端的状态就不在所需状态了
作者: CATHERIAN    时间: 2019-5-22 21:47
w1179benp 发表于 2019-5-21 11:04
感觉LCD1602的数据口和控制口应该用不同的端口,否则在赋予数据或命令时,控制端的状态就不在所需状态了

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   
                       
}
改成这样还是不能显示
作者: w1179benp    时间: 2019-5-23 20:40
建议:先单写很“干净”的LCD驱动部分,显示正常了,再一个一个增加其它部分。出问题便于检查
作者: CATHERIAN    时间: 2019-5-24 12:02
w1179benp 发表于 2019-5-23 20:40
建议:先单写很“干净”的LCD驱动部分,显示正常了,再一个一个增加其它部分。出问题便于检查

LCD能正常显示,但是加上DS18B20之后,温度没法正常显示出来,脉冲计数也是




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1