打印
[应用相关]

烧录完成后无反应

[复制链接]
527|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2021-2-20 09:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32103C8T6芯片,用的0.96寸IIC OLED,烧录(st-link)完后OLED屏不亮,板子没有任何反应(做的是一个平衡小车)。 然而在烧录进去测试OLED的程序后屏幕可以正常点亮显示内容。keli显示烧录成功但是板子屏幕啥的一点反应都没有,就板子上的两个电源LED灯亮,给孩子急坏了,请各位大佬前辈给看看该如何排查问题和解决问题 以下是测试OLED的代码(main c):
/************************************************************************** 作  者 :大鱼电子 淘宝地址:https://shop119207236.taobao.com  微信公众号【大鱼机器人】 后台回复【平衡小车】:获取平衡小车全套DIY资料 后台回复【电子开发工具】:获取电子工程师必备开发工具 后台回复【电子设计资料】:获取电子设计资料包  知乎:张巧龙 **************************************************************************/#include "sys.h"/***************OLED的IO接口**************************                                                                GND   电源地                                                                VCC   接5V或3.3v电源                                                                SCL   接PB8(SCL)                                                                SDA   接PB9(SDA) ****************OLED的IO接口**************************/int main(void)        {         delay_init();                               //=====延时函数初始化                NVIC_Configuration();                                         //=====中断优先级分组        uart1_init(128000);                   //=====串口1初始化        LED_Init();                    //=====初始化与 LED 连接的IO        KEY_Init();                    //=====按键初始化        OLED_Init();                   //=====OLED初始化        OLED_Clear();                                                                         //=====OLED清屏  while(1)                {                        delay_ms(50);                                                                                                  //=====50ms刷新一次屏幕即可,不需要一直刷新。                        OLED_ShowString(0,4,"DAYUTC OLED Test ",12);                        LED=~LED;        }         }
以下是烧录进去没反应的代码:
#include "sys.h"#include "LED.h"#include "nrf24l01.h"#include "spi.h"
#define LED_ON  GPIO_ResetBits(GPIOC,GPIO_Pin_13);   #define LED_OFF   GPIO_SetBits(GPIOC,GPIO_Pin_13);
float Voltage;                                                                                                                           //电池电压采样相关的变量float pitch,roll,yaw;                                                                                            //欧拉角(姿态角)short aacx,aacy,aacz;                                                                                                         //加速度传感器原始数据short gyrox,gyroy,gyroz;                                                                                         //陀螺仪原始数据float UltrasonicWave_Distance;                 //超声波测距int   Encoder_Left,Encoder_Right;                          //左右编码器的脉冲计数int         Moto1=0,Moto2=0;                                                                                                 //计算出来的最终赋给电机的PWMint         Flag_Qian,Flag_Hou,Flag_Left,Flag_Right; //蓝牙遥控相关的变量u8    flag_UltrasonicWave=0;                                                                         //超声波是否超出安全距离标志位u8    key=0;                                                                                                                                          //按键的键值u8 rx_buf[33];u16 speed,rotate;signed char Count1,Count2;float pitch,roll,yaw;                 //欧拉角
void RxHandle(){        if(NRF24L01_RxPacket(rx_buf)==0)//一旦接收到信息,则显示出来. {        rx_buf[32]='\0';//加入字符串结束符LED1_ON;                                                memmove(&rotate,&rx_buf[6] ,2);        memmove(&pitch, &rx_buf[8] ,4);        memmove(&roll,  &rx_buf[12],4);        memmove(&yaw,   &rx_buf[16],4);         if(rx_buf[2]=='1') Flag_Qian=1;else Flag_Qian=0;         if(rx_buf[3]=='1') Flag_Hou=1;else Flag_Hou=0;         if(rotate>2500) Flag_Left=1; else Flag_Left=0;         if(rotate<1500) Flag_Right=1;else Flag_Right=0;        LED_ON;                        delay_ms(500);        LED_OFF;        delay_ms(500);
                                                                  }        }
int main(void)        {         delay_init();                               //=====延时函数初始化                NVIC_Configuration();                                         //=====中断优先级分组,其中包含了所有的中断优先级的配置,方便管理和一次性修改。        NRF24L01_Init();        NRF24L01_RX_Mode();                        Adc_Init();                    //=====初始化ADC        Encoder_Init_TIM2();           //=====初始化编码器2        Encoder_Init_TIM4();           //=====初始化编码器4        Timer3_Init(5000,7199);                     //=====超声波定时器初始化                LED_GPIO_Config();
                OLED_Init();                   //=====OLED初始化        OLED_Clear();                                                                         //=====OLED清屏        MPU_Init();                                                                     //=====初始化MPU6050        mpu_dmp_init();                                                                 //=====初始化MPU6050的DMP模式                                                 UltrasonicWave_Configuration();//=====初始化超声波的硬件IO口        TIM1_PWM_Init(7199,0);                            //=====初始化PWM 10KHZ,用于驱动电机。         Motor_Init();                                                                         //=====初始化与电机连接的硬件IO接口         MPU6050_EXTI_Init();                                         //=====MPU6050 5ms定时中断初始化        oled_first_show();                                           //只需要显示一次的字符,在此刷新一次即可。                while(NRF24L01_Check())         //检测NRF24L01是否存在        {                LED_ON;                delay_ms(200);                LED_OFF;                delay_ms(200);                        }        NRF24L01_RX_Mode();        
RxHandle();  while(1)                {         RxHandle();
                oled_show();                delay_ms(50); //20HZ的显示频率,屏幕无需时刻刷新。        }         }

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1413

主题

3784

帖子

5

粉丝