久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 為什么STM32打印出來的時間這么奇怪?麻煩一下大佬幫我分析一下 [打印本頁]

作者: killzreo    時間: 2019-3-3 09:59
標題: 為什么STM32打印出來的時間這么奇怪?麻煩一下大佬幫我分析一下
為什么打印出來的時間這么奇怪呢,求解,謝謝

  1. #include "stm32f10x.h"



  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "oled.h"
  5. #include "bmp.h"
  6. #include "ds1302.h"
  7. #include "usart.h"
  8. int main(void)
  9. {        
  10.          u8 time[15];
  11.                 delay_init();                     //延時函數初始化         
  12.                 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);          //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級         LED_Init();                             //LED端口初始化
  13.                 uart_init(115200);
  14.                 OLED_Init();                        //初始化OLED  
  15.                 OLED_Clear();
  16.             DS1302_Init();
  17.                  DS1302_Write_Time();
  18.                 /*
  19.                  OLED_ShowString(30,0,"OLED TEST");
  20.                 OLED_ShowString(8,2,"ZHONGJINGYUAN");  
  21.                 OLED_ShowString(20,4,"2014/05/01");  
  22.                 OLED_ShowString(0,6,"ASCII:");  
  23.                 OLED_ShowString(63,6,"CODE:");  
  24.                 t=' ';
  25.                 OLED_ShowCHinese(0,0,0);//中
  26.                 OLED_ShowCHinese(18,0,1);//景
  27.                 OLED_ShowCHinese(36,0,2);//園
  28.                 OLED_ShowCHinese(54,0,3);//電
  29.                 OLED_ShowCHinese(72,0,4);//子
  30.                 OLED_ShowCHinese(90,0,5);//科
  31.                 OLED_ShowCHinese(108,0,6);//技
  32.                 */        
  33. //                t=' ';
  34.         while(1)
  35.         {               
  36.                 DS1302_Get_Time(time);
  37.                 //OLED_Clear();
  38.         //        LED_ON;
  39. //                OLED_ShowCHinese(0,0,0);//中
  40. //                OLED_ShowCHinese(18,0,1);//景
  41. //                OLED_ShowCHinese(36,0,2);//園
  42. //                OLED_ShowCHinese(54,0,3);//電
  43. //                OLED_ShowCHinese(72,0,4);//子
  44. //                OLED_ShowCHinese(90,0,5);//科
  45. //                OLED_ShowCHinese(108,0,6);//技
  46. //                OLED_ShowString(0,3,"1.3' OLED TEST");
  47.                 //OLED_ShowString(8,2,"ZHONGJINGYUAN");  
  48.          //        OLED_ShowString(20,4,"2014/05/01");  
  49. //                OLED_ShowString(0,6,"ASCII:");  
  50. //                OLED_ShowString(63,6,"CODE:");  
  51. //                OLED_ShowChar(48,6,t);//顯示ASCII字符           
  52. //                t++;
  53. //                if(t>'~')t=' ';
  54. //                OLED_ShowNum(103,6,t,3,16);//顯示ASCII字符的碼值         
  55. //                        
  56. //        
  57. //                delay_ms(8000);
  58. //                OLED_Clear();
  59. //                delay_ms(8000);
  60.         //                LED_OFF;
  61. //                OLED_DrawBMP(0,0,128,8,BMP1);  //圖片顯示(圖片顯示慎用,生成的字表較大,會占用較多空間,FLASH空間8K以下慎用)
  62. //                delay_ms(8000);
  63. //                OLED_DrawBMP(0,0,128,8,BMP2);
  64. //                delay_ms(8000);
  65.         OLED_ShowNum(50,4,time[13]*10+time[14],2,8);

  66. printf("%d%d%d%d年%d%d月%d%d日 ", time[0],time[1],time[2],time[3],time[4],time[5],time[6],time[7]);
  67. printf("%d%d時%d%d分%d%d秒 星期%d\n", time[9],time[10],time[11],time[12],time[13],time[14],time[8]);
  68. delay_ms(1000);
  69. //OLED_ShowChar(13,6,TIME[0]);
  70. //OLED_ShowString(1,5,";");
  71.         //OLED_ShowNum(54,13,TIME[1],2,8);
  72.         //OLED_ShowString(54,16,";");
  73.         //OLED_ShowNum(7,7,TIME[0],3,8);
  74.         }         
  75.         
  76. }

復制代碼

編程7.7z

190.2 KB, 下載次數: 8


作者: devcang    時間: 2019-3-3 11:28
//從DS302讀出時鐘數據
void DS1302_Read_Time(void)  
{
        time_buf[1] = DS1302_Read_Byte(ds1302_year_add);                   //年
        time_buf[2] = DS1302_Read_Byte(ds1302_month_add);                   //月
        time_buf[3] = DS1302_Read_Byte(ds1302_date_add);                   //日
        time_buf[4] = DS1302_Read_Byte(ds1302_hr_add);                     //時
        time_buf[5] = DS1302_Read_Byte(ds1302_min_add);                     //分
        time_buf[6] = (DS1302_Read_Byte(ds1302_sec_add))&0x7f; //秒,屏蔽秒的第7位,避免超出59
        time_buf[7] = DS1302_Read_Byte(ds1302_day_add);                     //周        
}

//DS1302向上層返回時間數據
void DS1302_Get_Time(u8 *time)
{
        DS1302_Read_Time();
        time[0]=(time_buf[0]>>4);   //年   
  time[1]=(time_buf[0]&0x0f);
   
  time[2]=(time_buf[1]>>4);   
  time[3]=(time_buf[1]&0x0f);
  
  time[4]=(time_buf[2]>>4);   //月  
  time[5]=(time_buf[2]&0x0f);

  time[6]=(time_buf[3]>>4);   //日   
  time[7]=(time_buf[3]&0x0f);
   
  time[8]=(time_buf[7]&0x07); //星期
   
  time[9]=(time_buf[4]>>4);   //時   
  time[10]=(time_buf[4]&0x0f);   

  time[11]=(time_buf[5]>>4);  //分   
  time[12]=(time_buf[5]&0x0f);   

  time[13]=(time_buf[6]>>4);  //秒
  time[14]=(time_buf[6]&0x0f);
}

更新日期時間數組的部分程序有問題。。。。沒這硬件。。。。。調試原始的數據吧,看看具體哪讀的問題
作者: xuyaqi    時間: 2019-3-3 11:42
用仿真先看從DS1302讀到的時間正常嗎。
作者: tt123    時間: 2019-3-4 00:08
代碼邏輯上沒問題。我記得printf是不能傳入太多叁數。7個叁數可能太多了, 試試只傳入秒的數據。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩在线观看网站 | 看黄在线 | 久久精品国产免费看久久精品 | 日韩欧美精品一区 | 日本三级在线视频 | 欧美一区二区二区 | 狠狠草视频 | 欧美一级二级视频 | 狠狠色狠狠色综合日日92 | 国产一二三视频在线观看 | 中文字幕免费视频 | 在线观看中文字幕 | 蜜桃特黄a∨片免费观看 | 久久国产精品精品 | 天堂资源 | 国产精品无码久久久久 | 日韩高清一区 | 羞羞在线视频 | 欧美一级高潮片免费的 | 精品欧美一区免费观看α√ | 久久一区二区视频 | 欧美一区二区三区在线观看视频 | av在线免费播放 | 国产99久久久久 | 91网在线播放 | 久久久久久久久久影视 | 国产精品久久久久久久免费大片 | 欧美三级久久久 | 国产精品视频一区二区三区四蜜臂 | 中文字幕在线精品 | 国产91色在线 | 亚洲 | 欧美网址在线观看 | 欧美激情在线一区二区三区 | av在线成人 | 亚洲国产成人在线视频 | 毛片网在线观看 | 日本黄色一级片视频 | 91免费视频 | 久草免费在线视频 | 狠狠婷婷综合久久久久久妖精 | 国产精品美女久久久久久免费 |