欢迎来到天天文库
浏览记录
ID:44588099
大小:702.23 KB
页数:27页
时间:2019-10-23
《【精品】STM编程心得》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、STM编程心得—.Keil的设置:1•添加目录:选择OptionsforTarget1Targe选择IncludePaths,添加项H包含的H录DeviceTargetOutput
2、Listing
3、UserC/C++
4、Asm
5、Linker
6、DebugUtilit
7、PreprocessorSymbolsDefine:Undefine:Language/CodeGenerationOptimization:
8、Level0(-00)▼
9、OptimizeforTimeSplitLoadandStoreMultipleOneELFSectionperFu
10、nction厂StrictANSICEnumContaineralwaysintEbinCharisSignedRead-OnlyPositionIndependentRead-WritePositionIndependentWarnings:
11、12、ASYSTEMdelay;ASYSTEMsys;.ASYSTEMusart;..HARDWARELED;.AHARDWAREKEYPaths—-程序编写:初始化时钟RCC->RC时钟控制寄存器定义32位寄存器(位数)2524191813、定义PLLRDYPLLONCSSONI1SEBYP171615:87:310HSERDYHSEONHSICAL[7:0]IIS1TR1M[4:O]HSIRDYIIS10NPLLRDY:PLL时钟就绪标志,PLL锁定后由硬件置1,0二PLL未锁定,1二PLL锁定。PLLON:P【丄使能,当进入待机和停止模式时,硬件清零。当PLL时钟作为系统时钟时,该位不能被清零O=PLL关闭,1=PLL使能。CSSON:时钟安全系统使能,0二时钟检测器关闭,1二如果外部4-16MHz振荡器就绪,时钟检测器开启。HSERDY:外部告诉时钟就绪标志,0二外部4-1614、MHz振荡器没就绪,1二外部4-16MHz振荡器就绪。HSEON:外部高速时钟使能,当进入待机和停止模式时,硬件清零。当4-16MHz振荡器作为系统时钟时,该位不能被清零0二HSE振荡器关闭,1二HSE振荡器开启。HSTCAL[7:0]:内部高速时钟校准。系统启动初始化HSITRIM[4:0]:内部高速时钟调整,默认16,可以把IISI调整到8MHz±l%,每步HSICAL变化调整越40kHzoHSIRDY:内部高速时钟就绪标志,0二内部8MHz振荡器没就绪,1二内部8MHz振荡器就绪。HST0N:内部高速时钟使能,当内部8MH7振荡器被直接或15、间接地用作或被选择将要作为系统时钟时,该位不能被清零。0二内部8MHz振荡器关闭,1二内部8MHz振荡器开启。时钟配置寄存器RCC->CFGR32位寄存器(位数)26:242221:1817定义MC0[2:0]USBPREPLLMUL[3:0]PLLXTPRE1615:1413:1110:87:4PLLSRCADCPRE[1:O]PPRE2[2:0]PPRE1[2:O]I1PRE[3:O]3:21:0SWS[1:O]SW[1:O]MC0[2:0]:微控制器时钟输出,0XX二没有时钟输出,100二系统时钟(SYSCLK)输出,101二内部RC振荡16、器时钟(HSI)输岀110二外部振荡器时钟(HSE)输出111二円丄吋钟2分频后输出USBPRE:USB预分频,0=PLL时钟1.5倍分频作为USB时钟1=PLL时钟直接作为USB时钟PLLMUL:PLL倍频系数,PLL输出频率不超过72MHz,0000二PLL2倍频0001二PLL3倍频0010二PI丄4倍频0011二PI丄5倍频0100=PLL6倍频0110=PLL8倍频1000=PLL10倍频1010=PLL12倍频1100=PLL14倍频1110=PLL16倍频0101=PLL7倍频0111=PLL9倍频1001二PI丄11倍频101117、=PLL13倍频1101=PLL15倍频1111=PLL16倍频PLLXTPRE:HSE分频器作为PLL输入,0二HSE不分频,1二HSE2分频PLLSRC:PLL输入时钟源,0二IISI振荡器时钟经2分频后作为PLL输入时钟1=HSE时钟作为PLL输入时钟ADCPRE[l:0]:ADC预分频,00=PCLK22分频后作为ADC时钟,01二PCLK24分频后作为ADC时钟,10二PCLK26分频后作为ADC吋钟,11=PCLK28分频后作为ADC时钟。PPRE2[2:0]:高速APB预分频(APB2),0XX=HCLK不分频100=HCLK2分18、频101二HCLK4分频110=HCLK8分频111=IICLK16分频PPRE1[2:O]:低速APB预分频(APB1),0XX=HCLK不分频10
12、ASYSTEMdelay;ASYSTEMsys;.ASYSTEMusart;..HARDWARELED;.AHARDWAREKEYPaths—-程序编写:初始化时钟RCC->RC时钟控制寄存器定义32位寄存器(位数)25241918
13、定义PLLRDYPLLONCSSONI1SEBYP171615:87:310HSERDYHSEONHSICAL[7:0]IIS1TR1M[4:O]HSIRDYIIS10NPLLRDY:PLL时钟就绪标志,PLL锁定后由硬件置1,0二PLL未锁定,1二PLL锁定。PLLON:P【丄使能,当进入待机和停止模式时,硬件清零。当PLL时钟作为系统时钟时,该位不能被清零O=PLL关闭,1=PLL使能。CSSON:时钟安全系统使能,0二时钟检测器关闭,1二如果外部4-16MHz振荡器就绪,时钟检测器开启。HSERDY:外部告诉时钟就绪标志,0二外部4-16
14、MHz振荡器没就绪,1二外部4-16MHz振荡器就绪。HSEON:外部高速时钟使能,当进入待机和停止模式时,硬件清零。当4-16MHz振荡器作为系统时钟时,该位不能被清零0二HSE振荡器关闭,1二HSE振荡器开启。HSTCAL[7:0]:内部高速时钟校准。系统启动初始化HSITRIM[4:0]:内部高速时钟调整,默认16,可以把IISI调整到8MHz±l%,每步HSICAL变化调整越40kHzoHSIRDY:内部高速时钟就绪标志,0二内部8MHz振荡器没就绪,1二内部8MHz振荡器就绪。HST0N:内部高速时钟使能,当内部8MH7振荡器被直接或
15、间接地用作或被选择将要作为系统时钟时,该位不能被清零。0二内部8MHz振荡器关闭,1二内部8MHz振荡器开启。时钟配置寄存器RCC->CFGR32位寄存器(位数)26:242221:1817定义MC0[2:0]USBPREPLLMUL[3:0]PLLXTPRE1615:1413:1110:87:4PLLSRCADCPRE[1:O]PPRE2[2:0]PPRE1[2:O]I1PRE[3:O]3:21:0SWS[1:O]SW[1:O]MC0[2:0]:微控制器时钟输出,0XX二没有时钟输出,100二系统时钟(SYSCLK)输出,101二内部RC振荡
16、器时钟(HSI)输岀110二外部振荡器时钟(HSE)输出111二円丄吋钟2分频后输出USBPRE:USB预分频,0=PLL时钟1.5倍分频作为USB时钟1=PLL时钟直接作为USB时钟PLLMUL:PLL倍频系数,PLL输出频率不超过72MHz,0000二PLL2倍频0001二PLL3倍频0010二PI丄4倍频0011二PI丄5倍频0100=PLL6倍频0110=PLL8倍频1000=PLL10倍频1010=PLL12倍频1100=PLL14倍频1110=PLL16倍频0101=PLL7倍频0111=PLL9倍频1001二PI丄11倍频1011
17、=PLL13倍频1101=PLL15倍频1111=PLL16倍频PLLXTPRE:HSE分频器作为PLL输入,0二HSE不分频,1二HSE2分频PLLSRC:PLL输入时钟源,0二IISI振荡器时钟经2分频后作为PLL输入时钟1=HSE时钟作为PLL输入时钟ADCPRE[l:0]:ADC预分频,00=PCLK22分频后作为ADC时钟,01二PCLK24分频后作为ADC时钟,10二PCLK26分频后作为ADC吋钟,11=PCLK28分频后作为ADC时钟。PPRE2[2:0]:高速APB预分频(APB2),0XX=HCLK不分频100=HCLK2分
18、频101二HCLK4分频110=HCLK8分频111=IICLK16分频PPRE1[2:O]:低速APB预分频(APB1),0XX=HCLK不分频10
此文档下载收益归作者所有