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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 9496|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STM8S資源配置(寄存器版本)(STVD+COSMIC編譯環(huán)境)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:75926 發(fā)表于 2015-4-10 17:05 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
 1. IO口: 寄存器(X=A,B,C,D...)
        PX_DDR:   輸入輸出狀態(tài)配置 1:輸出,0:輸入.
        PX_CR1:    輸出時(shí) 1:推挽輸出 ,0:開漏輸出.輸入時(shí) 1:上拉輸入,0:浮空輸入.
        
PX_CR2:  輸出時(shí) 1:以10MHz的速度輸出,0:以2MHz的速度輸出.輸入時(shí) 1:開啟中斷功能,0:禁止中斷.
        PX_ODR:    輸出狀態(tài)寄存器 向其寫1 對(duì)應(yīng)的IO口則輸出高電位,寫0則輸出低電位.
        PX_IDR:     讀狀態(tài)寄存器,讀出的結(jié)果為1 則對(duì)應(yīng)IO口為高電位,為0則為低電位.

2.時(shí)鐘:(CLK)
        STM8S剛上電的時(shí)候運(yùn)行的時(shí)鐘是內(nèi)部的高速RC振蕩器的8分頻(HSI/8)(16MHZ/8=2MHZ),其內(nèi)部還有一個(gè)低速的RC振蕩器 (LSI).用戶還可以外接一個(gè)最大值為24MHZ的外部晶振作為時(shí)鐘(HSE).可以通過(guò)軟件編程來(lái)改變系統(tǒng)的主時(shí)鐘.
        CLK寄存器(CLK寄存器還有很多,涉及到時(shí)鐘切換的就這幾個(gè)就可以了)
        CLK_CKDIVR: 低3位保存CPU時(shí)鐘的分頻因子(設(shè)低3位的值為x 那么分頻因子就是2^x),第3位和第4位是HSI時(shí)鐘的分頻因子;其余位保留.
        CLK_SWCR:[0](SWBSY)時(shí)鐘切換忙判斷位(沒切換完成為1,切換完成為0),[1](SWEN)時(shí)鐘切換啟動(dòng)位 1啟動(dòng)切換 0 禁止切換.[2](SWIEN)時(shí)鐘切換中斷選擇位 1:開啟時(shí)鐘切換中斷,0:不開啟.
        CLK_SWR: 時(shí)鐘源選擇寄存器,給這個(gè)寄存器賦值為 0xe1:主時(shí)鐘為內(nèi)部高速振蕩器,0xd2:主時(shí)鐘為內(nèi)部低速振蕩器,0xb4:外部高速振蕩器.
{ //時(shí)鐘切換例子 從HSI/8切換為HSE
    //CLK_CKDIVR=0;//分頻銀子設(shè)置為0
    CLK_SWR=0xb4;//選擇時(shí)鐘源
    CLK_SWCR&=~(1<<2);//關(guān)閉切換中斷
    CLK_SWCR|=(1<<1);//啟動(dòng)切換
    while(CLK_SWBSY&(1<<0)==1);//等待切換完成
}


3.串口(UART) STM8S可能有很多串口,這里只講UART1
    與串口1配置相關(guān)的寄存器:
    CLK_PCKENR1:這個(gè)寄存器的第2位是UART1的時(shí)鐘啟動(dòng)位,1:啟動(dòng),0:關(guān)閉 
    UART1_CR2:[2]:接收使能位(1:使能,0失能),[3]:發(fā)送使能位
(1:使能,0失能),[5]接收中斷使能位(1:使能,0失能),[6]發(fā)送完成中斷使能位(1:使能,0失能),[7]發(fā)送中斷使能位(1:使能,0失能).
    UART1_CR3:UART1模式選擇寄存器[5:4]停止位個(gè)數(shù)選擇 00:1個(gè)停止位,01:保留,10:2個(gè)停止位,11:1.5個(gè)停止位
    UART1_CR1:[1] 奇偶校驗(yàn)選擇位 1:奇校驗(yàn),0:偶校驗(yàn).[2]奇偶校驗(yàn)使能位 1:使能,0失能. [4]字長(zhǎng)選擇位 1: 1個(gè)起始位 9個(gè)數(shù)據(jù)位 1個(gè)停止位, 0:一個(gè)起始位 8個(gè)數(shù)據(jù)位,UART1_CR3[5:4]個(gè)停止位.[5] UART1啟動(dòng)位 0:啟動(dòng) 1:關(guān)閉
    UART1_BRR2:波特率選擇寄存器2,波特率的值=主時(shí)鐘頻率/分頻因子.分頻因子就是這兩個(gè)寄存器的值.比如分頻因子為0xABCD  那么
UART1_BRR2=0xAD,UART1_BRR1=0xBC.
    UART1_BRR1:
波特率選擇寄存器1
    給這兩個(gè)寄存器賦值的時(shí)候要先給
UART1_BRR2 賦值.在給UART1_BRR1賦值,因?yàn)榻oUART1_BRR1賦值完成的時(shí)候波特率就已經(jīng)決定好了,再給UART1_BRR2 賦值就沒有意義了.
{    //UART1配置例子(開啟收發(fā),開啟接受中斷 關(guān)閉發(fā)送中斷)
    #define BRR     9600//定義波特率(修改波特率只需要修改這個(gè)宏的值就可以了)
    #define Fosc    16000000 //定義CPU頻率
    #define BRR1    (((Fosc)/(BRR))>>4)
    #define BRR2    (((((Fosc)/(BRR))&0xf000)>>8)|(
((Fosc)/(BRR))&0x000f))
    CLK_PCKENR1|=1<<2;//開啟UART1時(shí)鐘
    UART1_CR2&=~(1<<2);//先關(guān)閉接收
    UART1_CR2&=~(1<<3);//先關(guān)閉發(fā)送
    UART1_BRR2=BRR2;//設(shè)置波特率 先給BRR2賦值在給BRR1賦值
    UART1_BRR1=BRR1;
    UART1_CR1&=~(1<<2);//不使用奇偶校驗(yàn)
    UART1_CR1&=~(1<<4);//選擇1個(gè)起始位 8個(gè)數(shù)據(jù)位
    UART1_CR3&=~(1<<4);//選擇1個(gè)停止位
    UART1_CR3&=~(1<<5);
//選擇1個(gè)停止位
    UART1_CR2&=~(1<<6);//不使用發(fā)送中斷
    UART1_CR2|=(1<<5);//使用接收中斷
    UART1_CR1&=~(1<<5);//啟動(dòng)UART1
    UART1_CR2|=(1<<2);//啟動(dòng)接收
    UART1_CR2|=(1<<3);//啟動(dòng)發(fā)送
}


4:定時(shí)器(TIM4)
ST的單片機(jī)無(wú)論是STM32還是STM8S他的定時(shí)器的功能非常強(qiáng)大.強(qiáng)大的功能必然伴隨著配置更加復(fù)雜.我這里先學(xué)容易一些的定時(shí)器TIM4.
TIM4的寄存器:
    TIM4_IER:與中斷有關(guān)的寄存器 [0] 設(shè)置為1時(shí)開啟更新中斷,設(shè)置為0時(shí)關(guān)閉
    TIM4_PSCR:計(jì)數(shù)器的分頻因子  計(jì)數(shù)器的頻率=時(shí)鐘源頻率/TIM4_PSCR[2:0]
    TIM4_ CNTR:計(jì)數(shù)器  從TIM4_CNTR的值計(jì)數(shù)到255 然后從新從TIM4_ARR處開始計(jì)數(shù)
    TIM4_ARR:
    TIM4_EGR:事件產(chǎn)生寄存器 [0]設(shè)置為1時(shí) 有更新事件 為0時(shí)無(wú)更新事件
    TIM4_CR1:[0] 為1時(shí) 開啟TIM4的計(jì)數(shù)器,否則關(guān)閉TIM4的計(jì)數(shù)器
    TIM4_SR: [0]更新事件標(biāo)準(zhǔn)位,中斷處理函數(shù)里面要將其請(qǐng)0
{ //TIM4設(shè)置例子
    #define    PERIOD    100
    #define     ARR    ((0xff)-(PERIOD))
    TIM4_IER=0x00;//關(guān)閉所有中斷
    TIM4_PSCR=0x04;//計(jì)數(shù)器頻率=16MHZ/2^4;
    TIM4_CNTR=
ARR;
    TIM4_ARR=
ARR;
    TIM4_EGR|=(1<<0);//產(chǎn)生更新事件
    TIM4_CR1|=(1<<0);//開啟TIM4的計(jì)數(shù)器
    TIM4_SR&=~(1<<0);//    清除中斷標(biāo)志
    TIM4_IER|=(1<<0);//       開啟更新中斷


5.使用TIM3的PWM功能
與PWM(OC1)功能有關(guān)的寄存器
    TIM3_CCMR1:模式
選擇[6:4]
    TIM3_CCER1:該寄存器的[0]為1時(shí)啟動(dòng)PWM 否則關(guān)閉

    TIM3_CCR1L:比較寄存器低位
    TIM3_CCR1H:比較寄存器高位

當(dāng)TIM3_CNT寄存器的值小于TIM3_CCR1寄存器時(shí)OC1輸出的電平和
TIM3_CNT大于TIM3_CCR1時(shí)的電平不一樣(至于究竟是什么電平跟模式有關(guān))從而電位出現(xiàn)高低高低的變化,調(diào)節(jié) TIM3_CCR1/TIM3_ARR的比值可以調(diào)節(jié)占空比
{    //TIM3_PWM演示
    TIM3_ARRL=100;
    TIM3_ARRH=0;
    TIM3_CCR1L=50;
    TIM3_CCR1H=0; //占空比=50/100=0.5
    TIM3_PSCR=4; //16/2^4=1 分頻
    TIM3_CCMR1|=0x70;//設(shè)置為PWM2模式
    TIM3_CCER|=0x01;//啟動(dòng)PWM輸出
    TIM3_CR1|=0x01;//啟動(dòng)計(jì)數(shù)器
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩久久久 | 精品欧美一区二区三区免费观看 | 国产精品久久久久久久久久久久久久 | 女人av| 中文字幕在线三区 | 在线免费观看毛片 | 亚洲综合在线播放 | 久久99精品久久久水蜜桃 | 亚洲一级二级三级 | 日韩精品一区二区三区中文字幕 | 精品欧美色视频网站在线观看 | 成人精品一区 | 成人精品一区二区三区 | 成人免费视频网站在线观看 | 午夜精品一区二区三区在线观看 | 亚洲天堂精品久久 | 日韩精品一区二区久久 | 国产亚洲精品一区二区三区 | 国产欧美一区二区三区在线看蜜臀 | 国产成人午夜电影网 | 天天干天天草 | 欧美一区二区三区在线观看 | 国产精品日韩欧美一区二区三区 | 91成人免费看 | 毛片免费视频 | 成人激情视频免费在线观看 | 九九热在线视频 | 成人国产精品免费观看 | 欧美视频在线观看 | 亚洲精品精品 | 亚洲一本| 国产 欧美 日韩 一区 | 国产精品1区2区 | 天天色天天射天天干 | 成人av看片 | 99精品国产一区二区三区 | 欧美美女爱爱 | 久艹av| 日韩精品在线看 | 国产日韩欧美精品一区二区三区 | 黄色免费网站在线看 |