目录
一、实验准备
硬件:
- STM32F103C8T6
- USB转TTL串口
- 面包板及若干杜邦线
软件:
- STM32CubeMX
- KEIL
- FlyMcu
- fireTools
线路连接:

二、STM32CubeMX配置项目
1、配置RCC

2、配置SYS

3、配置GPIO
(1)设置引脚PA5,命名为LED,进行LED闪烁
(2)设置PA5为GPIO_Output

4、配置串口

5、配置定时器
(1)使用定时器2来实现串口通信和LED闪烁
(2)改变钟源为内部时钟,同时分频系数为71,系统自动加1为72,周期为9999能够自动重载
(3)时钟我们一般会配置为72MHZ,所以72分频后得到1MHZ的时钟。中断时间为1/(72M/72/10000)=0.01s.

6、配置中断

7、配置时钟

8、生成项目


三、KEIL配置代码
1、 printf函数
在main.c和usart.c中添加头文件#include "stdio.h"之后,勾选Target中的use MicroLIB,在mian.c文件中,添加如下代码,进行重定义
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
return ch;
}
2、中断函数
(1)添加置while循环前
HAL_TIM_Base_Start_IT(&htim2);
(2)添加回调函数置main.c
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
static uint32_t time_cnt =0;
static uint32_t time_cnt2 =0;
if(htim->Instance == TIM2)
{
if(++time_cnt >= 200)
{
time_cnt =0;
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
}
if(++time_cnt2 >=500 )
{
time_cnt2 =0;
printf("hello windows!\r\n");
}
}
}
3、 编译生成HEX文件
(1)选定生成HEX文件
(2)编译程序

四、FlyMcu烧录

五、效果展示
1、helloWindows通信

2、LED定时闪烁

六、实验参考
https://blog.csdn.net/jynyyhd/article/details/127587043?spm=1001.2014.3001.5502
http://www.mcublog.cn/stm32/2021_01/stm32cubemx-dingshiqi-led/
5809

被折叠的 条评论
为什么被折叠?



