單片機源程序如下:
- #include "stm32f10x.h"
- #include "bsp_usart.h"
- #include "bsp_Timer.h"
- #include "OLED_I2C.h"
- #include "bsp_SysTick.h"
- uint16_t t = 0;
- double speed = 0 ;
- uint16_t btime = 0;
-
- int main(void)
- {
- double time;
- double CLK;
- unsigned char a[10];
-
- USART_Config();
- TIMER_Init();
- SysTick_Init(); //初始化延遲函數
- I2C_Configuration(); //配置CPU的硬件I2C
- OLED_Init(); //初始化OLED
- OLED_Fill(0xFF); //全屏點亮
- Delay_s(2); // 2s
- OLED_Fill(0x00); //全屏滅
- Delay_s(2); // 2s
- CLK = 72000000/(71+1);
- printf("\r\n 測速 KEY1\n");
- while (1)
- {
- if(TIM_ICUserStructure.Capture_FinishingFlag == 1 && t==50)
- {
- time=TIM_ICUserStructure.Capture_Period*(0xffff+1)+(TIM_ICUserStructure.Capture_CcrValue+1);
- speed=1/((time/CLK)*20);
- sprintf((char *)a,"%.2lf",speed);
- printf("\r\n 測得一個脈沖時間 %f s 當前速度為 %f r/s\r\n",time/CLK,speed);
- TIM_ICUserStructure.Capture_FinishingFlag = 0;
- OLED_ShowStr(55,3,a,2); //測試8*16字符
- t=0;
- }
- }
- }
復制代碼
所有資料51hei提供下載:
測速 (T法) - OLED.7z
(192.84 KB, 下載次數: 31)
2019-4-3 03:34 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|