一、建立项目模板
这里的user中重复引用了system_stm32f10x.c
Output中选择Create HEXFile,并且可以选择输出路径。
Listing中可以选择输出路径。
然后在C/C++中加入两个宏:
-
STM32F10X_MD,USE_STDPERIPH_DRIVER
并且还要勾选One ELF Section per Function,加入头文件路径:
在Debug中,使用J-Link,并设置
在Utilities,选择J-Link并Setting中:
二、写点LED代码
GPIO初始化:
-
/**8位的LED的IO口***/
-
#define PIN_LED (GPIO_Pin_8 | GPIO_Pin_9 |GPIO_Pin_10 |GPIO_Pin_11 |GPIO_Pin_12 |GPIO_Pin_13 |GPIO_Pin_14 |GPIO_Pin_15)
-
-
void LED_INIT(void)
-
{
-
GPIO_InitTypeDef GPIO_InitStructure;
-
GPIO_InitStructure.GPIO_Pin = PIN_LED;
-
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
-
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
-
-
/*打开LED使用的GPIO的时钟使能*/
-
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
-
/*进行初始化*/
-
GPIO_Init(GPIOB, &GPIO_InitStructure);
-
}
设置多位GPIO电平:
-
/****************************
-
* Function Name : LED_SET
-
* Description : 设置LED的状态,使用了8位。因为一次使用16位,所以要先读取
-
* Input : data
-
* Output : None
-
* Return : None
-
*****************************/
-
void LED_SET(uint8_t data)
-
{
-
uint16_t setValue;
-
-
setValue = GPIO_ReadOutputData(GPIOB);
-
setValue &= 0x00ff; //使用高8位
-
setValue |= (uint16_t)data <<8;
-
-
GPIO_Write(GPIOB, setValue);
-
}
简单的main函数
-
/****************************************************************************
-
* Function Name : main
-
* Description : Main program.
-
* Input : None
-
* Output : None
-
* Return : None
-
****************************************************************************/
-
-
int main(void)
-
{
-
LED_INIT();
-
LED_SET(0x0f);
-
-
while (1)
-
{
-
LED_SET(0xff);
-
Delay(10);
-
LED_SET(0x00);
-
Delay(10);
-
}
-
}
-
-
/*******************************************************************************
-
* Function Name : Delay
-
* Description : ???±???ò
-
* Input : c
-
* Output : None
-
* Return : None
-
*******************************************************************************/
-
-
void Delay(uint16_t c)
-
{
-
uint16_t a,b;
-
for(; c>0; c--)
-
for(a=1000; a>0; a--)
-
for(b=1000; b>0; b--);
-
}
可以直接设置单独的GIPO输出位:
-
GPIO_WriteBit(GPIOB, GPIO_Pin_15, Bit_SET);
-
GPIO_WriteBit(GPIOB, GPIO_Pin_15, Bit_RESET);
阅读(1791) | 评论(0) | 转发(0) |