一、建立项目模板
这里的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);
上一篇:STM32 JTAG接口PB3PB4配置为IO口使用问题
下一篇:Stm32使用Usart代码例子(轮询、中断、DMA)
推荐阅读最新更新时间:2024-11-06 23:43
设计资源 培训 开发板 精华推荐
- LTC6248 的典型应用 - 180MHz、1mA 功率效率四路轨至轨 I/O 运算放大器
- 【已验证】 基于ADS1292R的心率+ECG+呼吸频率RESP测量模块
- 用于高电流分流稳压器的 TL431A 可编程精密基准的典型应用
- 使用 Microchip Technology 的 TC323A 的参考设计
- 用户界面 - 用于 OLED 显示器的图形库应用电路
- 使用 Analog Devices 的 RH118 的参考设计
- 具有开尔文连接优势的 ADR420 2.048V XFET 输出电压基准的典型应用
- HV857,用于手机的 1 灯通用灯驱动器
- 【开关电路】LM2596-5V降压电路
- 采用单端 15V 输入电源的 LTC3265EDHC 低功率 ±20V 电源的典型应用电路