IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 用STM32cubemx生成keil工程完成流水灯和串口通信 -> 正文阅读

[嵌入式]用STM32cubemx生成keil工程完成流水灯和串口通信

目录

一、使用STM32cubemx生成keil工程

1.1、下载STM32cubemx

1.2、创建新工程

1.3、初始化配置

?1.4、工程导出

?二、keil中完善和仿真

2.1完善功能

2.2仿真波形?

2.3烧录演示

三、stm32usart串口通信

3.1、要求:

3.2、烧录

四、 总结

五、参考文献


一、使用STM32cubemx生成keil工程

1.1、下载STM32cubemx

可以去官网注册然后下载:?https://www.java.com/en/download/manual.jsp

详细步骤参考:(53条消息) 【STM32】STM32 CubeMx使用教程一--安装教程_Z小旋-CSDN博客_stm32cubemx安装

最好下载最新版本的,然后下载需要的芯片,本次我下载的是stm32f1

1.2、创建新工程

打开安装好的stm32cubemx,创建一个新工程

选择刚刚自己下载的芯片,然后双击右下方的Board就可以出现芯片了:

1.3、初始化配置

?开始对芯片的管脚和时钟进行初始化配置,管脚可以根据自己的需求选择,这里选择的

PA4\PA5\PA6:(如图所示,PA5\PA6同PA4一样操作)

?

?然后配置时钟,选择晶振:

?然后将时钟树中间的8mhz改成72mhz并回车:(回车之后弹出的东西直接选ok)

?配置完成后:

?注意:配置完成后可以关注一下如下图所示的地方,如果是绿色则表示没有问题如果是黄色(警告)或者红色(错误)就需要重新配置调整。

?1.4、工程导出

在project Manager中写出需要的工程名和保存的地址,还有配置其他内容:

?然后点击?GENERATE CODE?导出工程,生成keil工程:

?二、keil中完善和仿真

2.1完善功能

找到当时在stm32cubemx中保存的路径,找到keil文件然后打开它,可以看见工程中已经有很多文件了:

?找到gpio.c和main.c并点开浏览一下,然后在main函数中的while中添加如下代码:

		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);//A4灯亮
		HAL_Delay(500);
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);	//A4灯灭,同时A5亮
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
		HAL_Delay(500);
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);	//A5灯灭,同时A6灯亮
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_SET);
		HAL_Delay(500);
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_RESET);//A6灯灭然后开始循环

结果如图:

2.2仿真波形?

和上一个博客相同,首先点击锤子,然后点击debug,选择use simulator就可以开始仿真了

?然后调出逻辑窗口添加管脚号:

?

?开始仿真得到波形图:

?

2.3烧录演示

然后就可以烧录了,将板子与电脑相连,使用FLYMCU进行烧录:

三、stm32usart串口通信

3.1、要求:


(1)设置波特率为115200,1位停止位,无校验位。
(2)STM32系统给上位机(win10)连续发送“hello windows!”,上位机接收程序可以使用“串口调试助手“,也可自己编程。
(3)当上位机给stm32发送“Stop,stm32”后,stm32停止发送。

main.c

#include "stm32f10x.h"
void Delay_ms(volatile unsigned int t)	
{
	unsigned int i,n;
	for(n=0;n<t;n++)
		for(i=0;i<800;i++);
}

void SysTick_Handler(void)
{
}


//中断服务函数,前面在User_USART.c  void User_USART_Config(void)函数中
//USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);使能了数据接收中断,所以
//将处理接收数据时的中断服务
	int i=0;
	uint8_t a[11];
void USART1_IRQHandler(void)
{

	//uint8_t temp;
	
	
	if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
	{
		a[i++] = USART_ReceiveData(USART1);
		//USART_SendData(USART1, a[i-1]);
			

	}
	if(a[0]=='S'&&a[1]=='t'&&a[2]=='o'&&a[3]=='p'&&a[4]==','&&a[5]=='s'&&a[6]=='t'&&a[7]=='m'&&a[8]=='3'&&a[9]=='2')
		while(1);
}
void User_USART_Send_Byte(USART_TypeDef* pUSARTX, uint8_t Data)
{

	//向数据寄存器写入8bit数据
	pUSARTX->DR = (Data & (uint16_t)0x01FF);	

	//USART_GetFlagStatus检查数据是否发送完成
	while(USART_GetFlagStatus(pUSARTX, USART_FLAG_TXE) == RESET);
	
}


//向串口发送一个字符串数据,即可以发送包含多个字节的数据,char类型为8bit,其字符串中的每个字符都可用一个int数表示,即ASCII标准
void User_UART_Send_String(USART_TypeDef* pUSARTX, char* str)
{
  unsigned int i = 0;
	do	
	{
		User_USART_Send_Byte(pUSARTX, *(str + i));
		i++;
	}
	while(*(str+i)!='\0');

		//USART_GetFlagStatus检查多个数据是否发送完成
		while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
  

	{

}

int main(void)
{
	User_USART_GPIO_Config();
	User_NVIC_Config();
	User_USART_Config();

	User_UART_Send_String(USART1, "abcdefg!\n");

	while(1)
	{
     User_UART_Send_String(USART1, "hello windows!\n");
     Delay_ms(5000);
	}

}

3.2、烧录

将改好的程序仿真后烧录进芯片中(用FLYMCU)

?运行成功后,打开野火多功能调试助手运行(首先要下载一个压缩包,然后解压就可以直接运行了),点击打开串口,就会发现芯片一直在发送hello,window

四、 总结

? ? ?用STM32CubeMx直接生成工程是真的方便了很多,免去了很多我们很多的精力,通过这个实验差不多能比较熟练的使用stm32cubemx。

五、参考文献

(53条消息) STM32USART串口通信_txmnQAQ的博客-CSDN博客

(53条消息) STM32串口通讯发送hello windows_eininbebop的博客-CSDN博客

(53条消息) STM32的USART串口通信_m0_47159351的博客-CSDN博客

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-28 12:32:33  更:2021-10-28 12:32:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:31:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码