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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 20706|回復: 0
打印 上一主題 下一主題
收起左側

編程STM32F103CBT6 芯片心得

[復制鏈接]
跳轉到指定樓層
樓主
ID:85109 發表于 2015-7-8 23:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
1、 下載最新的固態庫,或者庫函數,當前使用的版本是V3.5的。
2、 在工程目錄下穿件KEIL文件夾,建立空工程,選擇不使用啟動代碼,單擊菜單按鍵“Target Options”在Output和Listing狀態下,選擇生成目錄,創建Obj,List文件夾存儲生成文件。選擇“Create HEX File”,并在Debug狀態下選擇相應的調試工具,點擊setting按鈕,彈出對話框,選中“Reset and Run”,選擇相應的Flash Download 當前為128K
3、ROM容量為16~32K就是LD,64K~128K的就是MD,256~512K的就是HD
4、 創建完成后,更改group相應名稱,添加相應的group,如CMSIS、StartUp和StdPeriph_Driver等。
5、 在group中添加程序,程序添加如圖所示。
6、   

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



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

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 羞羞网站免费观看 | 欧美一区二区在线观看 | www.一级片| 久久久精| 看av网 | 孕妇一级毛片 | 欧美中文一区 | 亚洲精品一区二区冲田杏梨 | 精品欧美一区二区中文字幕视频 | 欧美一级二级在线观看 | 一区二区福利视频 | 日日日操 | 欧美一级久久 | 久久久影院| 天天精品综合 | 成人免费视频网站在线观看 | 欧美视频 亚洲视频 | 免费黄色在线观看 | 国产精品一区二区av | 欧美日韩在线一区二区 | 久久久成人免费视频 | 欧美xxxx网站| 国产高清精品一区二区三区 | 一级黄在线观看 | 色欧美片视频在线观看 | 国产成人精品一区二 | 亚洲免费大片 | 亚洲欧美精品一区 | 久久久久亚洲视频 | 亚洲精品视频在线观看免费 | 日本午夜在线视频 | 午夜影院在线观看免费 | 中文字幕在线看人 | 午夜视频免费在线观看 | 日本三级线观看 视频 | 久久久久中文字幕 | 久久久久九九九女人毛片 | 天天av综合 | av在线成人| 日本免费一区二区三区四区 | 99热.com|