定時器中段傳送資料到上位機

2021-09-27 02:44:32 字數 1295 閱讀 5215

步驟:

1、使能tim3時鐘

rcc_apb1periphclockcmd(rcc_apb1periph_tim3,enable);

2、初始化定時器tim3

tim_timebaseinitstru.tim_clockdivision=tim_ckd_div1;

tim_timebaseinitstru.tim_countermode=tim_countermode_up;

tim_timebaseinitstru.tim_period=arr;//自動重裝載值

tim_timebaseinitstru.tim_prescaler=psc;//預分頻係數

tim_timebaseinit(tim3,&tim_timebaseinitstru);//初始化定時器tim3

3、設定定時器中斷

tim_itconfig(tim3,tim_it_update,enable);//設定定時器中斷,更新中斷

4、初始化nvic

5、使能定時器3

tim_cmd(tim3,enable

6、定時器中斷函式

void tim3_irqhandler()

printf("\r\n");

//    printf("定時器中斷自動傳送的值1為:%d  \r\n",usart_rx_buf[0]);

//    printf("定時器中斷自動傳送的值2為:%d  \r\n",usart_rx_buf[1]);

//    printf("定時器中斷自動傳送的值3為:%d  \r\n",usart_rx_buf[2]);

//    printf("定時器中斷自動傳送的值3為:%d  \r\n",usart_rx_buf[3]);

//    printf("定時器中斷自動傳送的值3為:%d  \r\n",usart_rx_buf[4]);

}tim_clearitpendingbit(tim3,tim_it_update);

}主函式:

int main()

printf("\r\n");

printf("接收資料的值1為:%d  ",usart_rx_buf[0]);

printf("接收資料的值2為:%d  ",usart_rx_buf[1]);

printf("接收資料的值3為:%d  ",usart_rx_buf[2]);

if(usart_rx_buf[0]=='0')

else if(usart_rx_buf[0]=='1')

//    for(i=0;i注意:

定時傳送時間的設定,定時週期的求法

51微控制器 定時器

定時 計數器的結構和工作原理 定時 計數器的實質是加1計數器 16位 由高8位和低8位兩個暫存器組成。80c51 微控制器定時 計數器的工作是由兩個特殊功能暫存器控制的。tmod是定時 計數器的工 作方式暫存器,確定工作方式和功能,低四位用於t0,高四位用於t1。t con是控制寄 存器,控制t0和...

51微控制器 定時器

標準的51微控制器內部有t0和t1兩個定時器。定時器的計數值儲存在暫存器中。th0 tl0用於t0,th1 tl1用於t1.定時器儲存暫存器 名稱描述 sfr位址 復位值th0 t0高位元組 0x8c 0x00 tl0t0低位元組 0x8a 0x00 th1t1高位元組 0x8d 0x00 tl1t...

微控制器的定時器

定時器則是由微控制器自身提供的乙個非常穩定的計數器,這個穩定的計數器就是微控制器上連線的晶振部件,晶振經過12分頻之後提供給微控制器的只有1mhz的穩定脈衝 晶振的頻率是非常準確的,所以微控制器的計數脈衝之間的時間間隔也是非常準確的,這個準確的時間間隔是1微秒 12mhz晶振內部的工作頻率 時鐘脈衝...