1.点亮LED
B站视频里面的代码有些问题,我做了以下改正:
GPIO_InitTypeDef是一个定义好的结构体,因此,我们应该把GPIO_InitStruct设置为结构体指针类型,不能像视频那样还把它当作一个结构体变量,因为Init函数里面要求是结构体指针类型的。
#include "stm32f10x.h" // Device header
int main(void) //这里用的都是16进制数
{
void delay1();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//设置总线时钟
GPIO_InitTypeDef* GPIO_InitStruct;//前一个是已经在函数中设置好的结构体变量类型,后一个是结构体指针
GPIO_InitTypeDef* GPIO_InitSt;
GPIO_InitStruct = &GPIO_InitSt;//增加严谨度,我们需要额外创建一个结构体变量把地址保存再结构体指针里
(*GPIO_InitStruct).GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStruct->GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct->GPIO_Pin = GPIO_Pin_13;
GPIO_Init(GPIOC, GPIO_InitStruct);//函数在定义的时候,里面的变量可以和我在主函数定义的变量重复,不会报错
// GPIO_SetBits(GPIOC, GPIO_Pin_13);//对GPIOC的13口进行置位,高电平,下面的是低电平
void delay1(10000000);
GPIO_ResetBits(GPIOC, GPIO_Pin_13);
while(1){
}
}
//void delay1(u32 count){//延时函数
// volatile u32 i=0;
// for(;i<count;i++);
//}