文章目录
前言
为了对自己的错误和实践过程进行记录,所以写了笔记,进行及时的记录,会对遇到的难题进行解决,记录。
开发板:CT117E
主控芯片型号:STM32F103RBT6
提示:以下是本篇文章正文内容,下面案例可供参考
1.新建工程(11.14
1.新建好工程后,下载时遇到此种错误:
解决办法:对环境配置进行仔细检查,发现此处配置错误:
应选择为
选择为正确的配置以后,问题解决,程序可以正常下载。
2.应该注意的地方:
此处的’.‘应该为英文类型下的逗号(’,’),如果书写错误,程序会报此种错误:
“no source”: Error: command-line: #992: invalid macro definition: USE_STDPERIPH_DRIVER.STM32F10X_MD
2.点亮LED灯
点亮LED
主程序:
对于I/O口的调用步骤:
1.初始化时钟频率(GPIOC,GPIOD)
2.初始化使用到的I/O口,以及它的工作状态,本例程中为对PD2,PC8~PC15初始化。
3.对I/O口的操作,使用GPIO_SetBits()函数或GPIO_ResetBits()函数。GPIO_SetBits()函数使得IO口为1,GPIO_ResetBits()函数使得IO口为0.
注意:
IO经过初始化后为拉低状态,即0.
LED闪烁
主程序:
注意:
对于LED灯的闪烁,需要用两个for循环,要是只用一个for循环,在while(1)循环中执行无法进行闪烁。
3.STM32时钟系统
时钟系统讲解
在编译程序时,为什么程序会直接从以main开头的主程序作为开始进行执行呢?
它得追溯到stm32文件库中的startup_stm32f10x_md.s文件中的内容,第135行意为跳转至main函数中进行执行,其中的系统初始化函数SystemInit,它决定了STM32单片机的时钟系统
跳转到这个函数中,可以看到:画红×的两个均和本开发板的主控芯片型号不符,
直到这一部分,其中有对于高性能型号STM32芯片的描述,进入setsysClock()函数中,查看所选择的时钟频率信息。