重庆交通大学信息科学与工程学院
《嵌入式系统基础A》课程
作业报告(第四周)
班 级: 物联网工程2002
姓名-学号 : 吴泽霖-632007060217
实验项目名称: 用cubemx完成初始化过程,采用HAL库编程实现。
实验项目性质: 设计性
实验所属课程: 《嵌入式系统基础》
实验室(中心): 南岸校区语音大楼
指 导 教 师 : 娄路
完成时间: 2022 年 10 月 13 日
一、实验内容和任务
用cubemx完成初始化过程,采用HAL库编程实现。
二、实验要求
1. 分组要求:每个学生独立完成,即1人1组。
2. 程序及报告文档要求:具有较好的可读性,如叙述准确、标注明确、截图清晰等。
3.项目代码上传github,同时把项目完整打包为zip文件,与实验报告(Markdown源码及PDF文件)、作业博客地址一起提交到学习通。
三. 实验过程介绍 (此处可以填博客内容)
一、安装HAL库
(1)打开安装好的STMCubeMX,点击HELP->Manage embedded software packages :
然后安装hal库
二.新建项目
回到STMCubeMX的主界面,创建新项目:
在part name里选择自己的芯片,点击信息栏中的具体芯片信息选中,点击start project:
点击system core,进入SYS,在debug下选择serial wire:
配置时钟,进入上面的rcc,有两个时钟,一个是hse和lse,我们要用是GPIO接口,而这些接口都在APB2里:
接下来观察时钟架构,APB2总线的时钟由hse控制,同时在这个界面得把PLLCLK右边选上:
将hse那里设为Crystal/Ceramic Resonator
接下来就是点击相应的引脚设置输出寄存器了,就是output那一项,一共选了三个,是PA4,PB9,PC15:
点击project manager,配置好自己的路径和项目名,然后IDE那项改为MDK-ARM:
进入 code generate界面,选择生成初始化.c/.h文件,后面点击generate code,选择open project,然后就到KEIL5了:
三、打开.uvprojx文件
将原主函数处覆盖图中代码
电路连接
根据设计的程序连接电路:
对于USB转TTL模块和stm32f103c8t6连接:
GND — GND
3v3 — 3v3
TXD — A10
RXD — A9
总电路:
红——B9
绿——C15
黄——A4
烧录运行
四、观察GPIO端口的输出波形
Target界面中,选择跟正确的晶振大小,我使用的是8MHz的外部晶振。这个选项在软件仿真中起到很重要的作用,如果选择错误,那么波形一定是错误的,因为时间不准确。Debug页的设置:
选择逻辑分析仪:
观察波形
引脚为低电平的灯亮,高电平的灯不亮,高低电平转换周期(LED闪烁周期)为1s左右。
三、总结
本次实验后能熟练安装 stm32CubeMX,用cubemx完成初始化过程,采用HAL库编程实现,并在Keil下用软件仿真运行上面代码,并用虚拟逻辑分析仪观察 对应管脚上的输出波形。