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

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 20880|回復(fù): 0
收起左側(cè)

編程STM32F103CBT6 芯片心得

[復(fù)制鏈接]
ID:85109 發(fā)表于 2015-7-8 23:02 | 顯示全部樓層 |閱讀模式
1、 下載最新的固態(tài)庫(kù),或者庫(kù)函數(shù),當(dāng)前使用的版本是V3.5的。
2、 在工程目錄下穿件KEIL文件夾,建立空工程,選擇不使用啟動(dòng)代碼,單擊菜單按鍵“Target Options”在Output和Listing狀態(tài)下,選擇生成目錄,創(chuàng)建Obj,List文件夾存儲(chǔ)生成文件。選擇“Create HEX File”,并在Debug狀態(tài)下選擇相應(yīng)的調(diào)試工具,點(diǎn)擊setting按鈕,彈出對(duì)話框,選中“Reset and Run”,選擇相應(yīng)的Flash Download 當(dāng)前為128K
3、ROM容量為16~32K就是LD,64K~128K的就是MD,256~512K的就是HD
4、 創(chuàng)建完成后,更改group相應(yīng)名稱,添加相應(yīng)的group,如CMSIS、StartUp和StdPeriph_Driver等。
5、 在group中添加程序,程序添加如圖所示。
6、   

7、 添加程序完成后發(fā)現(xiàn),編譯可能不通過(guò),有以下幾個(gè)問(wèn)題:
1、 出現(xiàn).type文件,用#include "stm32f10x_adc.h"等替換“…type.h”
2、 出現(xiàn)S32等重定義的現(xiàn)象,可以上網(wǎng)查出原因
3、 將“stm32f10x.h”中68行“#define STM32F10X_MD”取消屏蔽
4、 將“stm32f10x.h”中105行“#define USE_STDPERIPH_DRIVER”取消屏蔽
5、 單擊菜單按鍵“Target Options”,在C/C++狀態(tài)下,添加相應(yīng)的路徑;
6、打開(kāi)system_stm32f10x.c,將#define SYSCLK_FREQ_72MHz 72000000的屏蔽取消
更改外部晶振的波特率,由8M變?yōu)?/font>12M由于STM32F10x庫(kù)官方采用的是默認(rèn)的外接8MHz晶振,因此造成很多用戶也采用了8MHz的晶振,但是,8MHz的晶振不是必須的,其他頻點(diǎn)的晶振也是可行的,只需要在庫(kù)中做相應(yīng)的修改就行。
    在論壇上看到很多用戶反映,使用外接12MHz的晶振,會(huì)造成很多的問(wèn)題,如USART的波特率不正確,Systick走時(shí)不準(zhǔn)等問(wèn)題,在無(wú)論是在實(shí)際調(diào)試還是在軟件模擬中都會(huì)發(fā)現(xiàn)這個(gè)情況,其實(shí),這不能怪ST官方,我們必須肯定ST官方為方便用戶開(kāi)發(fā)所做的努力,下面我們就通過(guò)簡(jiǎn)單的三個(gè)步驟就可以讓你隨意的使用4—16MHz之內(nèi)任何頻點(diǎn)的晶振,我們以STM32F10x_StdPeriph_Lib_V3.4.0為例說(shuō)明。
第一步,打開(kāi)stm32f10x.h,將
#defineHSE_VALUE   ((uint32_t)8000000)
修改為:
#defineHSE_VALUE   ((uint32_t)12000000)
第二步,打開(kāi)system_stm32f10x.c,修改PLL參數(shù),將
   
    RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC |RCC_CFGR_PLLXTPRE |
                                        RCC_CFGR_PLLMULL));
    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);
修改為:
   
    RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC |RCC_CFGR_PLLXTPRE |
                                        RCC_CFGR_PLLMULL));
    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);
   
個(gè)人認(rèn)為:需要將使用總線速率的屏蔽去掉,不能將這句話的屏蔽去掉,否則就不能執(zhí)行接口SetSysClockTo72(),而執(zhí)行接口SetSysClockToHSE();



至此,原文件已經(jīng)修改完成,如果你想將主頻修改至其他頻率,請(qǐng)自行修改。但是,到現(xiàn)在,如果您直接編譯調(diào)試的話,就會(huì)出現(xiàn)上文所說(shuō)的USART的波特率不正確,Systick走時(shí)不準(zhǔn)等問(wèn)題,原因就是我們需要進(jìn)行第三部的修改,這個(gè)修改不是在原文件中,而是在編譯環(huán)境中。我們已Keil MDK為例說(shuō)明。
    第三步,打開(kāi)你已經(jīng)建立的STM32工程,選擇Projects-Options for target ***,找到Target標(biāo)簽,你會(huì)發(fā)現(xiàn),外接的晶振默認(rèn)還是8MHz,我們將外接的晶振參數(shù)修改為12MHz,確定保存,再編譯,調(diào)試,你就會(huì)發(fā)現(xiàn),所有的參數(shù)都回歸的正常軌道,設(shè)置波特率為9600,它也不會(huì)跑到14400,設(shè)置Systick1ms中斷,它不會(huì)1.5ms中斷。

回復(fù)

使用道具 舉報(bào)

無(wú)效樓層,該帖已經(jīng)被刪除

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美激情一区 | 欧美激情五月 | 国产av毛片 | 激情三区 | 成人精品国产免费网站 | 羞羞视频网站免费观看 | 欧美日韩视频在线播放 | 亚洲午夜视频 | 国产精品视频网站 | 亚洲大片在线观看 | 毛片a级毛片免费播放100 | 涩涩视频在线观看 | 亚洲精品一区二区 | 黄色网址在线免费播放 | 亚洲精品久久久久中文字幕欢迎你 | 精品视频一区二区三区在线观看 | 国产免费一区二区 | 欧美v日韩v | 自拍偷拍欧美 | 免费的av网站 | 成人欧美一区二区三区白人 | 成人国产免费观看 | 日本中文字幕日韩精品免费 | 高清黄色 | 日韩在线视频免费观看 | 一起操网站 | 视频一区在线播放 | 一级片子| 日韩综合在线 | 亚洲一区二区在线视频 | 九九视频在线观看 | 夜夜爽99久久国产综合精品女不卡 | 日日夜夜免费精品 | 国产精品一区二区不卡 | 天天操天天干天天曰 | 亚洲人va欧美va人人爽 | 久久久久免费精品国产 | 久久久久久久久久久久一区二区 | 久久综合久久综合久久 | 亚洲丝袜天堂 | 日韩视频区 |