找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2045|回复: 11
收起左侧

单片机软硬件调试 怪事一堆…

[复制链接]
ID:891089 发表于 2022-6-2 23:59 来自手机 | 显示全部楼层 |阅读模式
最近的怪事真的多啊,最近打算用51单片机改装下买的遥控车,电机驱动换成了l298n驱动板,我用一个最小系统板放到了遥控车上。然后怪事就来了,用开发板测试io口输出是低电平,依据是开发板上有个公共端接vcc的led灯,它是亮的。但是放到车上就是高电平,依据是,l298n的电机控制逻辑是高电平控制电机转动,电机动了。真的搞不懂最近怎么了,还有昨天也是,改装遥控器时,用按钮上拉电阻接到单片机的数字口,检测到低电平代表按钮按下了,但是始终是高电平,不管按不按,原以为是电路设计问题,直到用模拟口检测电压为依据,电压<2.0v为按下,就正常了。不知道哪的问题,郁闷啊……
回复

使用道具 举报

ID:96682 发表于 2022-6-3 01:37 | 显示全部楼层
要看楼主用了什么芯片接了什么电路
回复

使用道具 举报

ID:891089 发表于 2022-6-3 08:58 来自手机 | 显示全部楼层
wc86110 发表于 2022-6-3 01:37
要看楼主用了什么芯片接了什么电路

51普通的点灯电路
回复

使用道具 举报

ID:965189 发表于 2022-6-3 10:02 | 显示全部楼层
有些51的端口要设置模式啊。
回复

使用道具 举报

ID:1030478 发表于 2022-6-3 10:38 来自手机 | 显示全部楼层
端口模式设置的问题
回复

使用道具 举报

ID:99525 发表于 2022-6-3 10:51 | 显示全部楼层
检查电源电压与开发板是否一致!
回复

使用道具 举报

ID:891089 发表于 2022-6-3 12:38 来自手机 | 显示全部楼层
雪玉寐影 发表于 2022-6-3 10:51
检查电源电压与开发板是否一致!

是一致的
回复

使用道具 举报

ID:891089 发表于 2022-6-3 13:58 来自手机 | 显示全部楼层
君工创 发表于 2022-6-3 10:02
有些51的端口要设置模式啊。

怎么说呢,我不认为是配置问题,我是改装的遥控车嘛,把io口输出放在串口中断函数里就不行,但是放到主函数里就正常了,应该是程序的问题
回复

使用道具 举报

ID:891089 发表于 2022-6-3 13:58 来自手机 | 显示全部楼层
浮云且留 发表于 2022-6-3 10:38
端口模式设置的问题

怎么说呢,我不认为是配置问题,我是改装的遥控车嘛,把io口输出放在串口中断函数里就不行,但是放到主函数里就正常了,应该是程序的问题
回复

使用道具 举报

ID:891089 发表于 2022-6-3 14:29 | 显示全部楼层
/*============================================================
= Q=P1^2;                                                                                                     =
= H=P1^3;                                                                                                     =
= Y=P1^4;                                                                                                     =
= Z=P1^5;                                                                                                     =
=============================================================*/
#include <reg52.h>                //器件配置文件
#include <intrins.h>
/*
sbit Z=P3^2;
sbit Y=P3^3;
sbit Q=P3^4;
sbit H=P3^5;
*/
#define fx P2
typedef unsigned char u8;
u8 r_buf; //接收数据缓存
u8 flag_q,flag_h,flag_z,flag_y;

//22.1184MHz波特率初始化9600
void InitUART()
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;   
TH1 = 0xFA;
TL1 = 0xFA;
TR1 = 1;
ES = 1;
EA = 1;
}
void SendOneByte(unsigned char c) //发送字符函数
{
    SBUF = c;
    while(!TI);
    TI = 0;
}
void UARTInterrupt(void) interrupt 4 //串口接受字符
{
        //while(1){
    if(RI){
     RI = 0;
     switch(SBUF){
         case 'Q':  {flag_q=1;flag_h=0;/*if(flag_q==1&&flag_h==0)*/  {fx=0x10;SendOneByte('q');}}break;
                  /*
         else if(r_buf=='H')  {flag_h=1;flag_q=0;if(flag_h==1&&flag_q==0)  {Q=0;H=1;Z=0;Y=0;CZ}}
         else if(r_buf=='Z')  {flag_z=1;flag_y=0;if(flag_z==1&&flag_y==0)  {Z=1;Y=0;Q=0;H=0;SendOneByte('z');}}
         else if(r_buf=='Y')  {flag_y=1;flag_z=0;if(flag_y==1&&flag_z==0)  {Z=0;Y=1;Q=0;H=0;SendOneByte('y');}}
         else if(r_buf=='q')  {flag_q=1;flag_z=1;if(flag_q==1&&flag_z==1)  {Q=1;Z=1;Y=0;H=0;SendOneByte('q');}}
         else if(r_buf=='h')  {flag_y=1;flag_q=1;if(flag_q==1&&flag_y==1)  {Q=1;Y=1;Z=0;H=0;SendOneByte('h');}}
         else if(r_buf=='z')  {flag_z=1;flag_h=1;if(flag_z==1&&flag_h==1)  {Z=1;H=1;Y=0;Q=0;SendOneByte('z');}}
         else if(r_buf=='y')  {flag_y=1;flag_h=1;if(flag_y==1&&flag_h==1)  {H=1;Y=1;Z=0;Q=0;SendOneByte('y');}}
         */
         default: fx=0x00; break;
          }
         }
//  }
}
//400ms延时
void Delay400Ms(void)
{
        unsigned char TempCycA = 5;
        unsigned int TempCycB;
        while(TempCycA--)
                {
                        TempCycB=7269;
                        while(TempCycB--);
                };
}

/********************************************************/
void delayms(unsigned int ms)
{
        unsigned char i=100,j;
        for(;ms;ms--)
        {
                while(--i)
                {
                        j=10;
                        while(--j);
                }
        }
}
/*********************************************************/
void main(void)
{       
    fx=0x00;
    InitUART();       
        while(1);       
}
在串口中断里,io口无法操作,但是发送的数据可以收到。SendOneByte('z');就是这句是正常的


            
回复

使用道具 举报

ID:891089 发表于 2022-6-4 21:36 | 显示全部楼层
改成arduino了,搭配lora模块,距离100步加一面
回复

使用道具 举报

ID:1034867 发表于 2022-6-15 20:07 来自手机 | 显示全部楼层
设置端口模式
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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