我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 587|回复: 0

能帮忙看下读取的为什么是乱码。

[复制链接]

该用户从未签到

3

主题

0

回帖

0

积分

一级逆天

积分
0

终身成就奖

QQ
发表于 2016-5-28 21:10:55 | 显示全部楼层 |阅读模式
#include "stm32f10x.h"
#include "adc.h"
#include "key.h"
#include "led.h"
#include "system.h"
#include "usart.h"
#include "gui.h"
#include "flash.h"
#include "systick.h"

/****************************************************************************
* Function Name  : main
* Description    : Main program.
* Input          : None
* Output         : None
* Return         : None
****************************************************************************/
#define SIZE (19-1)

int main(void)
{
    uint8_t buff[SIZE], showChar[SIZE + 1], j, keyValue, ledState = 0,dat[6];
    uint32_t i,h=0;
    float ad;
    uint16_t value;

   
    /* 初始化 */
     TFT_Init();
    adc_init();
    KEY_Config();
    FLASH_Init();
    LED_Config();
   

    /* 显示初始化 */
    TFT_ClearScreen(BLACK);         
    while(FLASH_ReadID() != EN25Q64)
    {
        GUI_Show12Char(10, 0, "FLASH Init ERROR!", RED, BLACK);
    }
    TFT_ClearScreen(BLACK);
    GUI_Show12Char(10,30,"This is a value test!",YELLOW,BLACK);
    GUI_Show12Char(10, 50, "KEY_UP: write KEY_DOWN:read", RED, BLACK);
      
   
    while(1)
    {
           value=0;
           for(i=0;i<10;i++)
          {     
            ADC_SoftwareStartConvCmd(ADC1, ENABLE);
            while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//转换结束标志位
            value=value+ADC_GetConversionValue(ADC1);//返回最近一次ADCx规则组的转换结果   
           }
           if(j>1)
           {
              j=0;
              GPIO_SetBits(GPIOC,GPIO_Pin_0);
            }
           else
           {
               j++;
            GPIO_ResetBits
            (GPIOC,GPIO_Pin_0);
           }
            delay_ms(100);
            value=value/10;
            ad=value*3.3/4096;
            value=(u16)(ad*100);
            dat[0]=value/100+0x30;
            dat[1]='.';
            dat[2]=value%100/10+0x30;
             dat[3]=value%100%10+0x30;
            dat[4]='V';
            dat[5]='\0';
            GUI_Show12Char(10,100,"The AD Value is:",YELLOW,BLACK);
            GUI_Show12Char(160,100,dat,RED,BLACK);                    
        
        
               
        keyValue = KEY_Scan();
        /* 根据按键做出反应 */
        switch(keyValue)
        {
            case(KEY_UP): //按上键将"FLASH SPI test OK!"从FLASH地址0开始写入
                FLASH_WriteData((u8*)dat, h, SIZE);
                GUI_Show12Char(0, 140, "wirte OK!         ", RED, BLACK);
                break;

            case(KEY_DOWN): //按下键将从FLASH地址0开始读取18位数,将读取到的显示
                FLASH_ReadData(dat, 0, SIZE);
                for(j=0; j<SIZE; j++)
                {
                    showChar[j] = buff[j];  
                }
               
                GUI_Show12Char(80, 170, dat, RED, BLACK);
                break;

            default:
                break;
        }

        /* LED灯闪烁 */
        i++;
        if(i > 0x5FFFF)
        {
            i = 0;
            if(ledState == 0xFE)
            {
                ledState = 0xFF;
            }
            else
            {
                ledState = 0xFE;
            }
            LED_SetState(ledState);

        }      


}
}
回复

使用道具 举报

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

本版积分规则

论坛开启做任务可以
额外奖励金币快速赚
积分升级了


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

平平安安
TOP
快速回复 返回顶部 返回列表