A. 單片機的定時器C語言編程中:TH0與TL0為什麼是TH0=(65536-50000)/256;TL0=(65536-50000)%256
1、首先第一步要定時器0設置於模式1時,然後由高8位TH0和低8位TL0兩個8位寄存器組成,注意的是當設定計算值為65536-50000=15536(D)時,轉換為十六進制就是3CB0(H),此時,TH0=3C,TL0=B0分別裝入就可以了。
B. STM32是什麼啊,是32位的單片機嗎
stm32是一種32位的單片機。
單片機是嵌入式系統中最常用的核心部件,stm32本質上也是一種單片機。
從事嵌入式方面工作,如果有一定的基礎,可以從STM32單片機入手,如果沒有基礎,可以從51單片機入手。51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。
拓展資料:
STM32單片機是ST(意法半導體)公司使用arm公司的cortex-M3為核心生產的32bit系列的單片機,他的內部資源(寄存器和外設功能)較8051、AVR和PIC都要多的多,基本上接近於計算機的CPU了,適用於手機、路由器等等。
STM32單片機主要參數
12V-36V供電
兼容5V的I/O管腳
優異的安全時鍾模式
帶喚醒功能的低功耗模式
內部RC振盪器
內嵌復位電路
工作溫度范圍:
-40°C至+85°C或105°C
特點
內核:ARM32位Cortex-M3 CPU,最高工作頻率72MHz,1.25DMIPS/MHz。單周期乘法和硬體除法。
存儲器:片上集成32-512KB的Flash存儲器。6-64KB的 SRAM存儲器。
時鍾、復位和電源管理:2.0-3.6V的電源供電和I/O介面的驅動電壓。上電復位( POR)、掉電復位( PDR)和可編程的電壓探測器(PVD)。4-16MHz的晶振。內嵌出廠前調校的8MHz RC振盪電路。內部40 kHz的RC振盪電路。用於CPU時鍾的 PLL。帶校準用於 RTC的32kHz的晶振。
低功耗:3種低功耗模式:休眠,停止,待機模式。為RTC和備份寄存器供電的VBAT。
調試模式:串列調試(SWD)和JTAG介面。
DMA:12通道DMA控制器。支持的外設:定時器,ADC,DAC,SPI,IIC和UART。
3個12位的us級的A/D轉換器(16通道):A/D測量范圍:0-3.6V。雙采樣和保持能力。片上集成一個溫度感測器。
2通道12位D/A轉換器:STM32F103xC,STM32F103xD,STM32F103xE獨有。
最多高達112個的快速I/O埠:根據型號的不同,有26,37,51,80,和112的I/O埠,所有的埠都可以映射到16個外部中斷向量。除了模擬輸入,所有的都可以接受5V以內的輸入。
最多多達11個定時器:4個16位定時器,每個定時器有4個IC/OC/PWM或者脈沖計數器。2個16位的6通道高級控制定時器:最多6個通道可用於PWM輸出。2個看門狗定時器(獨立看門狗和窗口看門狗)。Systick定時器:24位倒計數器。2個16位基本定時器用於驅動DAC。
最多多達13個通信介面:2個IIC介面(SMBus/PMBus)。5個USART介面(ISO7816介面,LIN,IrDA兼容,調試控制)。3個SPI介面(18 Mbit/s),兩個和IIS復用。CAN介面(2.0B)。USB 2.0全速介面。SDIO介面。
ECOPACK封裝:STM32F103xx系列微控制器採用ECOPACK封裝形式。
C. STM32單片機使用定時器中斷產生1khz的方波
STM32有硬體PWM功能,但應用比較復雜,我也剛學,不知是否能產生1KHZ
用時器中斷比較簡單,但你要知道要添加哪些頭文件
int main(void)
{
LED_GPIO_Config();/* led 埠配置,也就是配置哪個管腳輸出方波這里以LED代替,這可是最基本 的操作,方法略 */
TIM2_Configuration(); /* TIM2 定時配置 */
TIM2_NVIC_Configuration();/* 定時器的中斷優先順序配置 */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE); /* TIM2 重新開時鍾,開始計時 */
while(1);
}
void TIM2_NVIC_Configuration(void)();/* 定時器的中斷優先順序配置 */
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
/*
void TIM2_Configuration(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
/* 設置TIM2CLK 為 72MHZ */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE);
//TIM_DeInit(TIM2);
/* 自動重裝載寄存器周期的值(計數值) */
TIM_TimeBaseStructure.TIM_Period=1000; //這里改成500就是0.5ms中斷一次了
/* 累計 TIM_Period個頻率後產生一個更新或者中斷 */
/* 時鍾預分頻數為72 */
TIM_TimeBaseStructure.TIM_Prescaler= 71;
/* 對外部時鍾進行采樣的時鍾分頻,這里沒有用到 */
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
TIM_ClearFlag(TIM2, TIM_FLAG_Update);
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
TIM_Cmd(TIM2, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , DISABLE); /*先關閉等待使用*/
中斷程序:
void TIM2_IRQHandler(void)
{
if ( TIM_GetITStatus(TIM2 , TIM_IT_Update) != RESET )
{
LED1_TOGGLE; //對LED1管腳取反0.5ms一次
TIM_ClearITPendingBit(TIM2 , TIM_FLAG_Update);
}
}
還是把GPIO配置也帖出來吧,這里是3個引腳接3個LED,你可以只設一個引腳就可以了
void LED_GPIO_Config(void)
{
/*定義一個GPIO_InitTypeDef類型的結構體*/
GPIO_InitTypeDef GPIO_InitStructure;
/*開啟LED的外設時鍾*/
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE);
/*選擇要控制的GPIOB引腳*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
/*設置引腳模式為通用推挽輸出*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
/*設置引腳速率為50MHz */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
/*調用庫函數,初始化GPIOB0*/
GPIO_Init(GPIOB, &GPIO_InitStructure);
/*選擇要控制的引腳*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_3;
GPIO_Init(GPIOC, &GPIO_InitStructure);
/* 關閉所有led燈 */
GPIO_SetBits(GPIOB, GPIO_Pin_0);
/* 關閉所有led燈 */
GPIO_SetBits(GPIOC, GPIO_Pin_4|GPIO_Pin_3);
}
D. STM32單片機內部到底有幾個定時器
具體要看是系列型號,同一種系列的不同型號定時器個數都有不一樣,以stm32F103為例,有的有4個,有的有8個。
單片機的用途相同,但不是一個檔次,STM32是32位單片機,一次處理數據寬度32位,而51隻能處理8位STM32的內部RAM和ROM(flash)都比51大得多,STM32F103有64kRAM,512kROM,STM32F407有256Kram,1MROM,主頻也很高。
微控制器
STM32L系列產品基於超低功耗的 ARM Cortex-M4處理器內核,採用意法半導體獨有的兩大節能技術:130nm 專用低泄漏電流製造工藝和優化的節能架構,提供業界領先的節能性能。該系列屬於意法半導體陣容強大的 32 位 STM32 微控制器產品家族,該產品家族共有 200餘款產品,全系列產品共用大部分引腳、軟體和外設,優異的兼容性為開發人員帶來最大的設計靈活性。
以上內容參考:網路-stm32