int main(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2 (用中断都得写) OLED_Init(); delay_init(168); //初始化延时函数 uart_init(115200); //初始化串口波特率为115200 Serial_TxPacket[0]=0x01; Serial_TxPacket[1]=0x02; Serial_TxPacket[2]=0x03; Serial_TxPacket[3]=0x04; //规范数组定义赋值方法 uart_init(115200); Serial_SendPacket(); //为什么要扩展Serial_TxPacket[4]为全局变量而不是写一个形参进去?要用指针太麻烦 while(1) { OLED_ShowNum(0,16,6,6,12); //检测到接收数据自动进中断,由硬件控制,无需调用 // if(Serial_RxFlag==1) // { // OLED_ShowNum(1,10,Serial_RxPacket[0],12,9); //// OLED_ShowNum(1,20,Serial_RxPacket[1],12,9); //// OLED_ShowNum(1,30,Serial_RxPacket[2],12,9); //// OLED_ShowNum(1,40,Serial_RxPacket[3],12,9); // OLED_Refresh_Gram(); // } OLED_Refresh_Gram(); } } 为什么我的OLED不亮?
时间: 2024-02-04 08:02:05 浏览: 170
有几个可能的原因导致您的OLED屏幕不亮:
1. 电源问题:确保您的OLED屏幕已正确连接电源,并且电源供应稳定。您可以使用示波器或万用表来检查电源电压是否在正常范围内。
2. 初始化问题:确认您已正确初始化OLED屏幕。根据您提供的代码,您使用了OLED_Init()函数来初始化OLED屏幕。请确保该函数已正确调用,并且没有其他问题导致初始化失败。
3. 通信问题:您的代码中使用了串口(uart)来发送数据到OLED屏幕。请确保串口的配置正确,并且与OLED屏幕的通信正常。您可以尝试使用示波器或逻辑分析仪来检查数据是否被正确发送到OLED屏幕。
4. 数据问题:确认您发送给OLED屏幕的数据是正确的。根据您的代码,您将要发送的数据存储在Serial_TxPacket数组中,并在Serial_SendPacket()函数中发送。请确保数组中的数据是正确的,并且发送函数正常工作。
如果您已经检查了上述问题但仍然无法解决,请提供更多关于您的硬件配置和其他相关代码的信息,以便我可以更好地帮助您解决问题。
相关问题
void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; //声明一个中断初始化结 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); //设成优先级组0:先占优先级2位 从优先级2位 NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQn; //设置TIM3中断优先级 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0; //中断占先等级 NVIC_InitStructure.NVIC_IRQChannelSubPriority=2; //中断响应优先级 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能 NVIC_Init(&NVIC_InitStructure);
这段代码是用来配置 NVIC(Nested Vectored Interrupt Controller)的,它是 ARM Cortex-M 系列处理器中用来管理中断的模块。在这段代码中,首先声明了一个中断初始化结构体 NVIC_InitTypeDef,然后配置了中断优先级组为 0,设置了 TIM2 中断的优先级为 0,响应优先级为 2,最后使能了 TIM2 中断。这样就完成了对 NVIC 的配置。
解释代码void NVIC_Configuration(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 }
这段代码是用来配置NVIC中断优先级分组的。NVIC(Nested Vectored Interrupt Controller,嵌套向量中断控制器)是ARM Cortex-M系列处理器中的一个重要模块,用于管理和响应中断。NVIC中断优先级分组是指将NVIC中断分为抢占优先级和响应优先级两部分,并将它们分别分配给不同的中断信号。这段代码中,调用了STM32库函数`NVIC_PriorityGroupConfig`,将NVIC中断分组设置为2,即抢占优先级有2位,响应优先级有2位。这意味着在同一抢占优先级中,响应优先级高的中断会被优先处理。
阅读全文