OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2032|回复: 2

新人求助,想将串口接受的数据显示到OLED屏幕上

[复制链接]

3

主题

7

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2019-7-12
在线时间
4 小时
发表于 2019-8-8 23:14:14 | 显示全部楼层 |阅读模式
10金钱
我把两个例程(显示部分和串口接受部分)合在了一起,main.c代码如下:
#include "stm32f10x.h"
#include "bsp_usart.h"
#include "bsp_adc.h"
#include "OLED_I2C.h"
#include "bsp_SysTick.h"   
void Delay(__IO uint32_t nCount)
{
  for(; nCount != 0; nCount--);
}
uint8_t ucTemp;
uint8_t uc;
uint8_t ucT;
unsigned int i,j,k,qq,bz;
int key;
unsigned char table[][20]={"0","1","2","3","4","5","6","7","8","9","."," ","-"};
void DEBUG_USART_IRQHandler(void)
{
        if(USART_GetITStatus(DEBUG_USARTx,USART_IT_RXNE)!=RESET)
        {               
                ucTemp = USART_ReceiveData(DEBUG_USARTx);
    USART_SendData(DEBUG_USARTx,ucTemp);       
        }         
}


int main(void)
{       

        Delay(0x0daaee);
        qq=1;
        key=2;
        SysTick_Init();   
        I2C_Configuration();
        OLED_Init();   
        OLED_CLS();
          USART_Config();
                OLED_CLS();//ÇåÆá
        while (1)
        {
                OLED_ON();
                uc=ucTemp;
          key=((int)uc)-48;
    OLED_ShowStr(38,3,(unsigned char*)table[key],1);       
                Delay(1000);
        }
}


这种时候不能正常显示,也不能串口收发数据。

但是我将main函数的while(1)函数中的“uc=ucTemp;”去掉,就能够正常与PC收发数据,且屏幕也能显示。可是可以看到“uc=ucTemp;”这条语句是我想将串口的数据和
OLED的显示函数连结在一起的,也就是想实现帖子题目上的功能,所以还想请各位大神帮我看看,到底哪里出现了问题。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2019-8-9 02:18:28 | 显示全部楼层
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2019-8-9 08:57:20 | 显示全部楼层
把串口接收到的数据放到数组中,显示屏显示的时候再从这个数组取数据。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-5 09:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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