嵌入式软件学习日志-01

稍微有些基础,打算边做项目边学习嵌入式软件,对了,还得准备考四级,现在大四了,不考研得为找工作准备起来了,可能每天还要背些八股文。现在打算做一个送药机器人,目标100天内做出来,产品需求和需要使用的计划已经大概定下来了,打算先从主控板PCB做起,然后写代码测试,最后外观设计,但是因为资金有限打算做一个小型的,主要是为了学习不是商用,所以要求也就没有那么高。

主控板分为哪几个模块呢,主控MCU模块,电机模块,蓝牙模块,网络模块,定位模块,摄像头模块,药箱模块。大概就是这些了,打算先买模块先学习下,然后最后再把这些模块画到一张板子上面。等快递的这些天也不能闲下来,今天到了前几天买的两块stm32f103c8t6核心板,打算先把基础的通信协议学习下。

今天原本打算学习使用STM32CubeMx来练习GPIO的三个任务:点亮LED,按键检测,按键计数。但是买的按键元器件还没有到,所以几天就实现点亮LED,定时器的使用和串口printf的重定向。

一.GPIO的使用:点亮LED

1.配置GPIO

2.配置时钟控制器RCC,高速时钟HSE要用到外部晶振,因为GPIO接口都在APB2总线里

时钟树这方面没有过多的了解,但比较重要,明天会再认真学习下。

3.导出工程

4.调试代码 

5.代码(hex文件)烧录

到此,这个任务就算完成了,但是还是有些疑惑:1,时钟树的配置;2.BOOT模式。带着问题去学习,嘻嘻。

二.定时器的使用和串口printf的重定向

1.STM32CubeMx配置

时钟控制器RCC配置:

GPIO配置:用于控制LED

 NVIC中断配置

 SYS配置

 TIM2配置:

尽管要同时对串口和LED进行选择,但是只需要一个定时器便可以进行控制。将时钟源改为内部时钟,选择72分频,向上计算到9999便结束,实际计数时间为72M/72/10000,为定时间定时频率。分频系数那里虽然写的是71,但系统处理的时候会自动加上1,所以实际进行的是72分频。由于时钟我们一般会配置为72MHZ,所以72分频后得到1MHZ的时钟。中断时间为1/(72M/72/10000)=0.01s.

USART配置

 

时钟树配置

导出工程

2.Keil编写代码

printf函数重定向

main.cusart.c中添加头文件#include "stdio.h"之后,勾选Target中的use MicroLIB,在main.c文件中,添加如下代码,进行重定向

添加中断

 添加回调函数 

3.烧录测试 

完工,有点晚了,今天就先这样了。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值