Open103Z 示例程序(基于 HAL 库)说明 
 
 
Open103Z 
示例程序(基于 HAL 库)说明 
程 序 说 明  
关 于 STM32CubeMx 
通过 STM32CubeMX 生成的基于 HAL 库的程序源代码,相较于经典库的代码而言,更加合理和清
晰。STM32CubeMX 配置界面是图形化的,参数设置相比于直接修改源代码更为直观。 
但是,用户对所需资源进行配置之后,经由 STM32CubeMX 生成的代码并不是直接可用,还需要
在/* USER CODE BEGIN */和/* USER CODE END */之间中加入相应的逻辑。 
每次在 STM32CubeMX 对程序的配置进行修改之后,生成的新代码会覆盖旧的代码。但是用户写
在/* USER CODE BEGIN */和/* USER CODE END */之间的代码会得到保留。 
代 码 编 译 环 境  
目前(2016 年 12 月)STM32CubeMX 可以根据 IDE 生成 EWARM / MDK-ARM / TrueSTUDIO / 
SW4STM32  等工程。这可以通过 Project  Settings  Toolchain / IDE  进行设置。 
我们提供的示例程序都是通过 MDK-ARM(Keil 5)进行编译,并且验证通过。如果打算直接使用
MDK-ARM 工程,那么电脑必须安装 Keil 5(或以上)。连接好下载器之后,打开 Keil,点击的 Build
编译工程,然后点击 Download 按钮,就可以把编译好的程序写入到芯片。下面所有的示例程序
使用过程的说明,均不会对开发环境配置和程序下载进行赘述。如有需要,请参阅相关手册。 
 
 
版本:V1.2.1,日期:2017 年 2 月 21 日 
1 
Open103Z 示例程序(基于 HAL 库)说明 
 
 
 
目 录  
程序说明 .................................................................................................................................................. 1 
关于 STM32CubeMx ........................................................................................................................... 1 
代码编译环境 .................................................................................................................................. 1 
目录 .......................................................................................................................................................... 2 
GPIO .......................................................................................................................................................... 4 
EXTI ........................................................................................................................................................... 4 
TIM ........................................................................................................................................................... 4 
PWM ......................................................................................................................................................... 5 
USART ....................................................................................................................................................... 5 
USART_DMA ........................................................................................................................................ 5 
USART_IT .......................................................................................................................................... 6 
USART_printf .................................................................................................................................. 6 
ADC_DMA ................................................................................................................................................. 7 
DAC ........................................................................................................................................................... 7 
I2C ............................................................................................................................................................. 8 
SPI ............................................................................................................................................................. 8 
CAN ........................................................................................................................................................... 9 
DS18B20 ................................................................................................................................................... 9 
RTC .......................................................................................................................................................... 10 
MCU_Temperature ................................................................................................................................. 10 
IWDG ...................................................................................................................................................... 11 
2 
版本:V1.2.1,日期:2017 年 2 月 21 日 
Open103Z 示例程序(基于 HAL 库)说明 
 
 
WWDG .................................................................................................................................................... 11 
CRC ......................................................................................................................................................... 12 
SDIO ........................................................................................................................................................ 12 
FATFS ...................................................................................................................................................... 13 
FSMC ....................................................................................................................................................... 13 
LCD_Display ............................................................................................................................................ 14 
LCD_Touch .............................................................................................................................................. 14 
USB_FS .................................................................................................................................................... 14 
CDC_Standalone ............................................................................................................................ 14 
HID_Standalone ............................................................................................................................ 15 
MSC_Standalone ............................................................................................................................ 15 
FreeRTOS ................................................................................................................................................ 16 
uCOS_III .................................................................................................................................................. 16 
 
 
 
版本:V1.2.1,日期:2017 年 2 月 21 日 
3 
Open103Z 示例程序(基于 HAL 库)说明 
 
 
GPIO 
描述: 
此程序演示如何通过 HAL 库,设置和使用 GPIO。 
工程位置: 
STM32CubeMX 工程位置:GPIO\GPIO.ioc 
Keil 工程位置:GPIO\MDK-ARM\GPIO.uvprojx 
预期结果: 
1)  插上 LED JMP 跳线帽(4 个)。 
2)  拨动 5 向摇杆或者按下 USER KEY 键,会点亮对应的 LED 指示灯。 
EXTI 
描述: 
此程序演示通过外部中断(按键)的方式执行回调函数。 
工程位置: 
STM32CubeMX 工程位置:EXTI\EXTI.ioc 
Keil 工程位置:EXTI\MDK-ARM\EXTI.uvprojx 
预期结果: 
1)  插上 LED1 的跳线帽。 
2)  按下 USER KEY 按键,便可切换 LED1 指示灯的状态。 
TIM 
描述: 
此程序演示通过定时器中断的方式执行回调函数。 
工程位置: 
STM32CubeMX 工程位置:TIM\TIM.ioc 
Keil 工程位置:TIM\MDK-ARM\TIM.uvprojx 
版本:V1.2.1,日期:2017 年 2 月 21 日 
4 
Open103Z 示例程序(基于 HAL 库)说明 
 
 
预期结果: 
1)  插上 LED JMP 跳线帽(4 个)。 
2)  LED1 / LED2 / LED3 / LED4 指示灯闪烁。 
PWM 
描述: 
此程序演示通过 STM32 芯片的 PWM 定时器,对输出电压进行控制。 
工程位置: 
STM32CubeMX 工程位置:PWM\PWM.ioc 
Keil 工程位置:PWM\MDK-ARM\PWM.uvprojx 
预期结果: 
1)  把 PD12 管脚连接到 LED 指示灯的正极。 
2)  LED 指示灯亮度逐渐变化。 
USART 
USART_DMA 
描述: 
此程序演示以直接内存存取(DMA)的方式,通过板载的 USART 接口连续输出信息。 
工程位置: 
STM32CubeMX 工程位置:USART_DMA\USART_DMA.ioc 
Keil 工程位置:USART_DMA\MDK-ARM\USART_DMA.uvprojx 
预期结果: 
1)  通过 USB 串口模块(例如 PL2303 模块)连接板载的 USART1 接口和电脑的 USB 口。其
中模块的 Rx   开发板的 Tx,开发板的 Tx   模块的 Rx。 
2)  电脑安装串口查看软件,并设置串口:波特率 115200,数据位 8,停止位 1,校验位无,
流控制无。 
3)  开启串口之后,可以查看到连续的串口信息打印。 
版本:V1.2.1,日期:2017 年 2 月 21 日 
5 
Open103Z 示例程序(基于 HAL 库)说明 
 
 
USART_IT 
描述: 
此程序演示以中断的方式,通过板载的 USART 接口接收信息。 
工程位置: 
STM32CubeMX 工程位置:USART_IT\USART_IT.ioc 
Keil 工程位置:USART_IT\MDK-ARM\USART_IT.uvprojx 
预期结果: 
1)  通过 USB 串口模块(例如 PL2303 模块)连接板载的 USART1 接口和电脑的 USB 口。其
中模块的 Rx   开发板的 Tx,开发板的 Tx   模块的 Rx。 
2)  电脑安装串口查看软件,并设置串口:波特率 115200,数据位 8,停止位 1,校验位无,
流控制无。 
3)  开启串口之后,电脑端通过串口连续发送 10 个字符,这些字符会通过串口重新打印出
来。 
USART_printf 
描述: 
此程序演示以轮询的方式,通过板载的 USART 接口输出信息。 
工程位置: 
STM32CubeMX 工程位置:USART_printf\USART_printf.ioc 
Keil 工程位置:USART_printf\MDK-ARM\USART_printf.uvprojx 
预期结果: 
1)  通过 USB 串口模块(例如 PL2303 模块)连接板载的 USART1 接口和电脑的 USB 口。其
中模块的 Rx   开发板的 Tx,开发板的 Tx   模块的 Rx。 
2)  电脑安装串口查看软件,并设置串口:波特率 115200,数据位 8,停止位 1,校验位无,
流控制无。 
3)  开启串口之后,可以查看到串口信息打印,每隔一秒钟打印一次。 
 
版本:V1.2.1,日期:2017 年 2 月 21 日 
6 
Open103Z 示例程序(基于 HAL 库)说明 
 
 
ADC_DMA 
描述: 
此程序演示通过以直接内存存取(DMA)的方式,连续进行 AD 采集。 
工程位置: 
STM32CubeMX 工程位置:ADC_DMA\ADC_DMA.ioc 
Keil 工程位置:ADC_DMA\MDK-ARM\ADC_DMA.uvprojx 
预期结果: 
1)  将  Analog Test Board  模块接入 ADC+DAC(SPI-1)接口。 
2)  通过 USB 串口模块(例如 PL2303 模块)连接板载的 USART1 接口和电脑的 USB 口。其
中模块的 Rx   开发板的 Tx,开发板的 Tx   模块的 Rx。 
3)  电脑安装串口查看软件,并设置串口:波特率 115200,数据位 8,停止位 1,校验位无,
流控制无。 
4)  转动 Analog Test Board 模块上面的两个电位器旋钮,串口会打印读到的  AD  信息: 
******** ADC DMA Example ******** 
AD1 value = 3.298V 
AD2 value = 1.647V 
******** ADC DMA Example ********   
AD1 value = 3.298V 
AD2 value = 1.647V 
DAC 
描述: 
此程序演示通过 STM32 芯片的 DMA 通道输出三角波信号。 
工程位置: 
STM32CubeMX 工程位置:DAC\DAC.ioc 
Keil 工程位置:DAC\MDK-ARM\DAC.uvprojx 
预期结果: 
1)  将  Analog Test Board  模块接入 ADC+DAC(SPI-1)接口。 
7 
版本:V1.2.1,日期:2017 年 2 月 21 日 
Open103Z 示例程序(基于 HAL 库)说明 
 
 
2)  Analog Test Board  模块上的  5V 管脚接到板子上任意 5V 输出管脚上。 
3)  Analog Test Board 模块会发出声音。 
I2C 
描述: 
此程序演示通过 I2C 接口读写 AT24 EEPROM。 
工程位置: 
STM32CubeMX 工程位置:I2C-AT24C04\I2C4.ioc 
Keil 工程位置:I2C-AT24C04\MDK-ARM\I2C-AT24C04.uvprojx 
预期结果: 
1)  将  AT24/FM24 Board  模块接到  I2C1  口上。 
2)  通过 USB 串口模块(例如 PL2303 模块)连接板载的 USART1 接口和电脑的 USB 口。其
中模块的 Rx   开发板的 Tx,开发板的 Tx   模块的 Rx。 
3)  电脑安装串口查看软件,并设置串口:波特率115200,数据位8,停止位1,校验
位无,流控制无。 
4)  按下板子的复位按键之后,EEPROM 会被写入数据,然后被读出数据。数据会通过串口
打印出来。 
SPI 
描述: 
此程序演示通过 SPI 接口读写 AT45DBXX Flash。 
工程位置: 
STM32CubeMX 工程位置:SPI-AT45DBXX\SPI-AT45DBXX.ioc 
Keil 工程位置:SPI-AT45DBXX\MDK-ARM\SPI-AT45DBXX.uvprojx 
预期结果: 
1)  将  AT45DBXX DataFlash Board 模块接到  SPI-1 接口上。 
2)  通过 USB 串口模块(例如 PL2303 模块)连接板载的 USART1 接口和电脑的 USB 口。其
中模块的 Rx   开发板的 Tx,开发板的 Tx   模块的 Rx。 
版本:V1.2.1,日期:2017 年 2 月 21 日 
8