找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 3344|回复: 4
收起左侧

STM32驱动DS18B20,在LCD1602显示温度以及对外部脉冲计数问题

[复制链接]
ID:522583 发表于 2019-5-19 13:08 | 显示全部楼层 |阅读模式
12黑币
捕获1.PNG
程序见附件,求大神帮忙看看哪里出错了,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

回复

举报

ID:149451 发表于 2019-5-21 11:04 | 显示全部楼层
感觉LCD1602的数据口和控制口应该用不同的端口,否则在赋予数据或命令时,控制端的状态就不在所需状态了
回复

举报

ID:522583 发表于 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   
                       
}
改成这样还是不能显示
回复

举报

ID:149451 发表于 2019-5-23 20:40 | 显示全部楼层
建议:先单写很“干净”的LCD驱动部分,显示正常了,再一个一个增加其它部分。出问题便于检查
回复

举报

ID:522583 发表于 2019-5-24 12:02 | 显示全部楼层
w1179benp 发表于 2019-5-23 20:40
建议:先单写很“干净”的LCD驱动部分,显示正常了,再一个一个增加其它部分。出问题便于检查

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

举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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