-
先大致确定硬件
一个stm32f103C8最小系统作控制,DS8B20温度检测模块,8个LED数码管,74HC138D作3位到8位的扩展来作位选择,74HC245作信号放大来驱动数码管显示。 -
建立工程文件夹SimpleElectronicThermometer,开发keil5,project -> new uvision project,建立一个工程。
-
在
Select Device for Target
界面选择STMicroelectronics->STM32F1 Series->STM32F103->STM32F103C8
。 -
在Target下面
Add Group
- CMSIS: Cortex Microcontroller Software Interface Standard,微控制器软件接口标准, 来存放CMSIS Cortex-M3 Core Peripheral Access Layer System库 与 CMSIS Cortex-M3 Device Peripheral Access Layer System库。
- User: 存放main与自定义中断程序
- App:存放项目自定义的库
- StdPeriph_Driver: 存放标准外设驱动库
-
设置好工程的头文件引用目录
-
写一段GPIO输出来测试工程是否正常
#include "stm32f10x.h"int main(void) {GPIO_InitTypeDef gpioInitVar;/*启用时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);/* 初始化 PA0 引脚 */GPIO_StructInit(&gpioInitVar);gpioInitVar.GPIO_Mode = GPIO_Mode_Out_PP;gpioInitVar.GPIO_Pin = GPIO_Pin_0;gpioInitVar.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA,&gpioInitVar);/* PA0引脚置0 */GPIO_ResetBits(GPIOA,GPIO_Pin_0);while(1);
}
简单说明GPIO的Mode
Stm32的GPIO有8种工作模式
- GPIO_Mode_AIN 模拟输入,GPIO会失效,引脚直接接入内部ADC。
- GPIO_Mode_IN_FLOATING 浮空输入,如果在该引脚悬空(无信号输入)的情况下,读取该端口的电平是不确定的。
- GPIO_Mode_IPD 下拉输入 ,悬空时默认为低电平。
- GPIO_Mode_IPU 上拉输入 ,悬空时默认为高电平。
- GPIO_Mode_Out_OD 开漏输出,当CPU输出逻辑0时,I/O端口输出低电平;而当CPU输出逻辑1时,该引脚处于开漏,也就是浮空状态(高阻态)。
- GPIO_Mode_Out_PP 推挽输出,当CPU输出逻辑0时,I/O端口输出低电平,而当CPU输出逻辑1时,I/O端口输出高电平。
- GPIO_Mode_AF_OD 复用开漏输出。
- GPIO_Mode_AF_PP 复用推挽输出。
- 接着来测试下usart 串口输出是否正常,工程中使用串口输出日志到电脑来调试程序。
第二节待续