本帖最后由 zhouzpd 于 2017-9-18 21:05 编辑
麒麟座mini之二-开发环境搭建、资源配置、硬件测试
上期简单学习了一下原理图和资源,这期就来配置一下开发环境和资源,然后完成硬件测试。
STM32CubeMX
http://www.stmicroelectronics.com.cn/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32cube-embedded-software/stm32cubef1.html?dl=%2B3MhzdJFCSuiolF1agIggQ%3D%3D%2CXl9aK6rOnOOB0UlFLh9rzg3nZRSbtn92JGfLGczeozUNupF8qbIYJfR0BroaTHWf
开发环境搭建
安装Keil
我安装的是Keil 5,当然需要安装STM32F103d对应的库。具体安装过程就不一一讲解了,自行百度即可。
本次最终使用了STM32Cube来建立工程,方便快捷。
建立工程
建立工程,选择芯片,这些都不用再多说了吧,主要说一下Keil 5选择库文件。
选择需要的外设和驱动,则自动会添加到工程中,如果某个外设需要以来其他的驱动,则勾选上即可。以后如果需要其他外设,可
进行添加。
建立main函数
新建main.c文件,并添加到工程,编写代码
保存,编译,无警告和错误,说明工程建立完成。
其他配置,输出hex,设置头文件路径,设置ST-Link等就不一一细说了。
最终的文件结构
Lesson 2
|-User-mian.c
|-HDW-HdwIO.c
|-MCU-McuConfig.c
资源配置
配置外设遵循“时钟-IO-方向-复用功能-外设属性”的过程来配置。
这次有了STM32CubeMX,就直接用这个工具来配置并生成代码好了。
先复习一下上期的资源表
| 引脚 | IO | 功能 | 配置 | 描述 | | 30 | PA9 | USART1_TX | 上拉推挽输出,复用功能 | | | 31 | PA10 | USART1_RX | 下拉输入,复用功能 | | | 12 | PA2 | USART2_TX | 上拉推挽输出,复用功能 | | | 13 | PA3 | USART2_RX | 下拉输入,复用功能 | | | 41 | PB5 | Wi-Fi Reset | 推挽输出 | | | 21 | PB10 | I2C_SCL | 推挽输出 | | | 22 | PB11 | I2C_SDA | 开漏输出 | | | 42 | PB6 | LED | 推挽输出 | | | 43 | PB7 | LED | 推挽输出 | | | 45 | PB8 | LED | 推挽输出 | | | 46 | PB9 | LED | 推挽输出 | | | | | | | |
IO配置
配置十分简单,选择对应IO口需要的功能即可,选择后,如果和外设有冲突,则左边外设会有红色或黄色的提示,十分易懂。
这里要注意选择RCC时钟源,否则后面配置时钟时选不到外部时钟。
提醒:SYS要选择调试工具SW,否则下载程序后无法再用ST-Link下载。这时跳线J8,重新上电即可再下载。
时钟配置
配置所用到的外设时钟,一张图看懂所有时钟配置,想要多少就输入多少,自动生成配置。这里要注意外部时钟12M。
外设属性配置
配置一些外设属性,如GPIO上下拉、中断、DMA等。每一个点进去看看就知道了,十分简单。
工程配置
配置工程路径和代码选项,注意选择IDE
配置系统时钟和定时器
生成代码
配置好后,以后点击这个按钮就能生成代码了,同时创建了一个工程,免去建工程的步骤了。
有兴趣的话可以看看生成的初始化代码,对新手理解MCU还是很有帮助的。
以后修改后,编写再/* USER CODE BEGIN 4 */ /* USER CODE END 4 */之间的代码是不会被更新的,因此用户自定义的代码可放在这里面。
硬件测试
简单测试一下LED、EEPROM、温湿度等功能吧。资料里其实也是有的。
LED测试
编写一个流水灯。定时不用延时,使用系统时钟。- U32 tick_s;
- U08 leds = 1;
- void UserMain(void)
- {
- while(1)
- {
- if(tick_s != HAL_GetTick()/1000)
- {
- tick_s = HAL_GetTick()/1000;
- HDW_SetLed(leds);
- leds <<= 1;
- if(leds >= 0xF)
- leds = 1;
- }
- }
- }
复制代码 下期预告
|