普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 2746|回复: 2

STM32时序问题

[复制链接]

1

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2020-7-21 09:17:04 | 显示全部楼层 |阅读模式
为什么我的程序在同时用到串口通信和spi的oled以及ADC的时候,他们各自的反应都会很慢,SPI的oled显示正常了,但是串口调试助手都没反应的。
主函数代码如下,然后我ADC用的PA0引脚,接的一个光敏传感器
SPI  led用的PD的五个引脚
串口用的PA9,
希望大神能给我解答。感激不尽


#include "system.h"
#include "SysTick.h"
#include "led.h"
#include "usart.h"
#include "adc.h"
#include "oled.h"

/*******************************************************************************
* º¯ Êý Ãû         : main
* º¯Êý¹¦ÄÜ     : Ö÷º¯Êý
* Êä    Èë         : ÎÞ
* Êä    ³ö         : ÎÞ
*******************************************************************************/
void OLED_start(void)
  
{OLED_Display_On();
  OLED_Init();//³õʼ»¯
  OLED_Display_On();//´ò¿ªoled
  OLED_Clear();//ÇåÆÁ
while(1)
{
  
  OLED_ShowCHinese(0,0,4);
  OLED_ShowCHinese(18,0,5);//¹âÕÕϵÊý
  OLED_ShowCHinese(36,0,6);
  OLED_ShowCHinese(54,0,7);

  
  OLED_ShowCHinese(0,3,8);
  OLED_ShowCHinese(18,3,9);
  OLED_ShowCHinese(36,3,10);//²É¼¯µçѹ
  OLED_ShowCHinese(54,3,11);
  
  
  OLED_ShowCHinese(0,6,12);
  OLED_ShowCHinese(18,6,13);
  OLED_ShowCHinese(36,6,14);//¼ÌµçÆ÷
  
  
  
  
  
  
  OLED_ShowString(70,0,":");//  :
  OLED_ShowString(70,3,":");
  OLED_ShowString(54,6,":");
  OLED_ShowString(116,3,"v");
//  OLED_ShowString(70,0,":");//  :
//  OLED_ShowString(86,3,"'%.2f',vol");
//  OLED_ShowString(100,6,"");
//

}
}
int main()
{ u8 flag=0;
u8 i=0;
u16 value=0;
float vol;
// char str[]={"¿ª","¹Ø"}
SysTick_Init(72);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);  //ÖжÏÓÅÏȼ¶·Ö×é ·Ö3×é
LED_Init();
OLED_start();
USART1_Init(9600);
ADCx_Init();

while(1)
{
  i++;
  if(i%50==0)
  {
   value=Get_ADC_Value(ADC_Channel_1,20);
   printf("¼ì²â¹âÕÕϵÊýΪ %d\r\n",value);
   vol=(float)value*(3.3/4096);
   printf("¼ì²âµçѹֵΪ %.2fV\r\n",vol);
  }
  delay_ms(10);
  if(value<1500)
  
  {
  delay_ms(2000);
  led3=0;flag=1;
  }
  if(value>=1500)
  {
  delay_ms(2000);
  led3=1;flag=0;
  }



}
}



回复

使用道具 举报

27

主题

337

帖子

3294

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3294
发表于 2020-7-21 16:22:00 | 显示全部楼层
你的value内语句延时会不会太长。建议先在printf程序成功输出的基础上逐步加入功能代码,在加入功能代码的过程中观察现象。不要一口气全部加,太多变数就不好找问题
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-20 21:42 , Processed in 0.106062 second(s), 33 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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