第一步新建一个文件夹用来装stm32工程方便以后学习
我新建的文件夹为stm32porjocte,以后的工程都存在这个文件夹下方便管理
第二步进行kill文件的操作
1点击prpject创建一个新的工程
把工程放在文件夹里
下面选择器件型号
我们选择的是stm32f103c8t5,所以这里选择时tm32f103c8这个
然后点击ok后悔弹出keil一个新建工程的小助手,这个可以帮助我们新建工程
直接把他X掉
然后在电脑打开 D:\stm32学习\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm复制里面的的文件挺好添加到新建的stm32project里面然后命名为star
第一个点H是和51单片REGx52.h是一样的 。system主要是用来配置时钟的,把文件复制下来添加到star文件里
然后需要添加连个CM3(cortex-M3)文件就是内核的寄存器描述一起加入到新建star文件夹下到这我们工程复制的那些必要文件就完成了
第三步将刚刚复制的文件添加到工程里去
先打开keil5然后点击
将他改名为star然后添加工程文件里
然后打开魔术棒按键
打开工程选项,在c/c++里
然后点击includepaths栏,然后点击右边三个点
然后在点三个点,把star的路劲添加进来
这样就把头函数添加进来了,
随后在尅了在target这里右键,点击添加组改个名字叫user
然后添加C文件ps 记得添加在user文件夹里否则会建在外面
然后在c文件里插入头文件选择stn32f10x.h文件,然后写一个while循环
int main (void)
(
whikle(1)
{
}
}
记住最后一行需要空行否则会报警
小知识;打开 小扳手将enconding改为utf8否则中文显示会出问题
接下来把STLIK和4根母对母杜邦线把3.3V swdio swclk gnd对应连接好
插上电脑后电源灯会常亮
连接在pc13接口是的灯默认一个是闪烁状态,这是芯片的一个测试程序
接下打开魔术棒
选择debug然后选择stlinkdebugger
然后点击settings
把resst and run沟上,之后我们下载程序会立马执行
然后点击load如果要求正常的话,这个程序就会下载到stm32里面
第三步配置经寄存器点灯
配置寄存器比较麻烦但是还是需要聊一
首先是Rcc的寄存器来使能gpioc的时钟,需要在apb2外设使能集翠成裘RCC-APB2ENR里面的配置
然后第二个寄存器我们需要配置一下PC13口的模式
寄存器还是不太方便
4库函数操作点灯
首先建立以后library的文件夹
然后打开函数库
将两个都复制在library里面
在添加一个library文件夹里添加前面复制的库函数
现在还不能直接使用我们还需要添加一个文件
将这 3个文件放到USER里
最后添加到user里面
然后打开
找到条件编译语句
将条件编译字符串复制到define顺手添加路径
这里面有两个参数第一个是选择外设第二个是选择新的状态
下面是写法的一句一句解析
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//使能apb2的时钟
GPIO_InitTypeDef GPIO_InitStructure;//声明一个结构体,名字是GPIO_InitStructure,结构体原型由GPIO_InitTypeDef 确定,
stm32里面初始化GPIO用的。设置完了GPIO_InitStructure里面的内容后
在GPIO_Init (GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_InitStruct)里面调用,
比如初始化pa口,就是
GPIO_Init (GPIOA, &GPIO_InitStructure),括号里后面那个就是你问题里面声明的那个结构体
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;
GPIO结构体:
typedef struct
{
uint16_t GPIO_Pin; //选择管脚,是你想用到的管脚
GPIOSpeed_TypeDef GPIO_Speed; //选择速度 可选2M 10M 50M
GPIOMode_TypeDef GPIO_Mode; //输入输出的8种模式,这要根据外电路和作用选择
}GPIO_InitTypeDef;
GPIO_SetBits(GPIOC,GPIO_Pin_13);//开灯
GPIO_ResetBits(GPIOC,GPIO_Pin_13)//关灯