STM32入门学习之USART(STM32F030F4P6基于CooCox IDE)

单片机GPIO输出 单片机的led beep key 阅读详情
#include "stm32f0xx.h"
#include "stm32_lib/inc/stm32f0xx_rcc.h"
#include "stm32_lib/inc/stm32f0xx_gpio.h"
#include "stm32_lib/inc/stm32f0xx_usart.h"

int main(void)
{
	//1、使能时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
	//特别注意:因为串口有使用GPIO,所以对应GPIO的时钟也要使能
	RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
	//2、选择引脚
	//TX有PA2和PA9可选,RX有PA3和PA10可选
	//GPIO_PinAFConfig(GPIOA,GPIO_PinSource2,GPIO_AF_1);
	//GPIO_PinAFConfig(GPIOA,GPIO_PinSource3,GPIO_AF_1);
	GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_1);//为什么是AF1,而不是AF0呢?见下图,数据手册才是准确的
	GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_1);

	//3、引脚设置
	GPIO_InitTypeDef PORT_UART1_TX;//定义TX脚,PORT_UART1_TX是自定义名称,可以任意
	PORT_UART1_TX.GPIO_Pin=GPIO_Pin_9;//此参数根据上面选择的引脚来定
	PORT_UART1_TX.GPIO_Speed=GPIO_Speed_10MHz;
	PORT_UART1_TX.GPIO_Mode=GPIO_Mode_AF;
	PORT_UART1_TX.GPIO_PuPd=GPIO_PuPd_NOPULL;
	//IO初始化
	//第一个参数是系统的GPIOA、GPIOB、GPIOC等
	//第二个参数是&+上面自定义的名称PORT_UART1_TX
	GPIO_Init(GPIOA,&PORT_UART1_TX);

	GPIO_InitTypeDef PORT_UART1_RX;//定义RX脚
	PORT_UART1_RX.GPIO_Pin=GPIO_Pin_10;//此参数根据上面选择的引脚来定
	PORT_UART1_RX.GPIO_Speed=GPIO_Speed_10MHz;
	PORT_UART1_RX.GPIO_Mode=GPIO_Mode_AF;
	PORT_UART1_RX.GPIO_PuPd=GPIO_PuPd_NOPULL;
	GPIO_Init(GPIOA,&PORT_UART1_RX);

	//4、串口参数配置
	USART_InitTypeDef MyUsart1;//这个MyUsart1是我自定义的,可以任意定义如XYZ123
	MyUsart1.USART_BaudRate=115200;//设置波特率
	MyUsart1.USART_WordLength=USART_WordLength_8b;//设置数据长度
	MyUsart1.USART_Parity=USART_Parity_No;//设置奇偶校验
	MyUsart1.USART_StopBits=USART_StopBits_1;//设置停止位
	MyUsart1.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//设置流控制
	MyUsart1.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;//设置模式
	//初始化
	//第一个参数是系统的USART1、USART2、USART3等
	//第二个参数就是&+上面自定义的量MyUsart1
	USART_Init(USART1,&MyUsart1);

	//5、使能
	USART_Cmd(USART1,ENABLE);
	//6、接收和发送,通过查询标志位
	while(1){
		while(USART_GetFlagStatus(USART1,USART_FLAG_RXNE)!=1);//等待接收
		USART_ClearFlag(USART1,USART_FLAG_RXNE);//清楚接收完成标志位
		USART_SendData(USART1,USART_ReceiveData(USART1));//接收什么,发送什么
		while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=1);//等待发送完成
		USART_ClearFlag(USART1,USART_FLAG_TXE);//清楚发送完成标志位
	}
}


画个板子玩一玩STM32F030F4P6,也许是最便宜的32bit MCU 前言,什么是STM32F030F4P6 STM32目前最便宜的芯片之一应该就是这一块,STM32F030F4P6,这一个芯片没有USB,但是其他都有,引脚少,价格低廉,如果找不到原厂,可以买替代的国产芯片,性能也一样。 不管怎么样也是Cortex-M0,比8bit和16bit的性能都强,总的来说就是低价,引脚少,体积小的同时,还容易开发,有很多模拟输入可玩,还有SPI,硬件I2C等等 所以,这一款MCU真的是从理论来说又便宜又好用,非常适合把玩。 画个板,最小系统 STM32F030其.. 阅读详情

相关推荐

STM32驱动学习---GPIO

GPIO 1.GPIO硬件原理图 GPIO_InitTypeDef GPIO_InitStructure; //定义结构体变量 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE); //使能端口F时钟 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT; //输出模式 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;//管脚设置F9 GPIO_InitStructure.G

weixin_43980926的博客 1万+

GPIO口的pull up和pull down,no pull的意义以及怎么配置。

一般来说,需要区分这个GPIO口用于输入还是输出。 如果是output,那个一般选择no pull,这样,引脚才能根据你的output数据,进行正确输出。 如果是input,那么需要看具体应用的默认输入值是0还是1. 如果默认是输入0,则最好配置为pull down,反之则配置为pull up. 这样做,主要是为了外部电路在没有上下拉的情况下,出现不确定情况。 有许多硬件工程师设计电路时...

panyan120的博客 3万+

STM32F030F4P6最小系统LED控制电路设计实战

STM32F030F4P6是STMicroelectronics(意法半导体)生产的一款32位ARM Cortex-M0处理器核心的微控制器单元(MCU)。这款微控制器在成本和性能之间取得了良好的平衡,特别适用于成本敏感型的入门级应用,如家电、传感器、消费电子等产品。它提供了丰富的外设接口和良好的扩展性,同时通过其低成本特性,允许开发者在预算有限的情况下实现高性能的嵌入式系统设计。在STM32F030F4P6微控制器的应用中,最小系统是指能够使微控制器正常工作的最基本电路组成。

weixin_32869687的博客 1645

【明解STM32】GPIO应用设计篇之API函数及配置使用技巧

详细的介绍STM32 GPIO相关的AP标准I库函数及配置使用技巧

大道至简,求同存异 3149

STM32F030F4P6 PWM控制技术教程

本文还有配套的精品资源,点击获取 简介:STM32F030F4P6微控制器基于Cortex-M0内核,适用于各种低功耗高性能应用,如智能家居、工业控制等。本教程包含了关于该微控制器的PWM(脉宽调制)配置和使用例程,展示了如何通过配置定时器、选择通道和设置占空比来实现PWM控制。介绍了RCC初始化、定时器模式设置、预分频器和自动重载值的配置、PWM通道配置以及中断和DMA设...

weixin_35756130的博客 1997

雷光联动自动化标校方法

动态标校需要利用动目标,在雷达和光电同时看到目标时记录光电的方位、俯仰,以及利用雷达给的目标信息计算的方位俯仰,手动记录两者的数值,多方位,多距离段记录,费时费力,且人工记录数据不全,计算容易出差错,耗费成本和精力太大。目标相距设备的水平距离 = acos(cos(设备纬度弧度值) * cos(目标纬度弧度值) * cos(设备经度弧度值 – 目标经度弧度值) + sin(设备纬度弧度值) * sin(目标纬度弧度值)) * 6378137;本发明涉及光电技术领域,安防领域,尤其涉及雷达光电动态标校等。

u013358093的博客 1580

STM32入门学习之USART中断(STM32F030F4P6基于CooCox IDE)

#include "stm32f0xx.h" #include "stm32_lib/inc/stm32f0xx_rcc.h" #include "stm32_lib/inc/stm32f0xx_gpio.h" #include "stm32_lib/inc/stm32f0xx_usart.h" #include "stm32_lib/inc/stm32f0xx_misc.h" #include

8790

避开这5个坑!STC8H DMA串口通信的实战避坑指南(115200波特率实测)

本文深入解析了STC8H单片机利用DMA实现稳定全双工串口通信的实战要点。针对115200高波特率场景,详细拆解了DMA-UART架构、关键寄存器配置、时钟精度计算、缓冲区管理及中断协同等核心环节,并提供了具体的避坑指南和调试方法,帮助开发者构建高效可靠的通信链路。

melon的博客 675

STM32入门学习之DMA(STM32F030F4P6基于CooCox IDE)

本代码基于STM32F030F4P6,用例为DMA控制串口发送,需要注意以下几点 1、注意串口IO配置,包括IO配置和复用功能选择 2、STM32F030系列的DMA不支持外设到外设,STM32F030只有DMA1,没有DMA2 3、注意不同外设对应不同DMA通道,而且不同芯片的通道也不一定相同,注意看数据手册 直接代码如下: #include "stm32_lib/inc/st

7284

勒索病毒c语言源代码,勒索病毒原理解析

一、编程思路什么是勒索病毒:遍历你电脑上所有文件,并且用加密算法加密,然后把加密秘钥发送到自己邮箱里,弹出窗口。工具:操作系统API,加密算法思路:1.程序设计 思路规划清楚1.1 加密单个文件1.2 遍历文件系统并加密文件2.工程实现: 编程3.测试上线 :、测试欢迎加入学习群【892643663】,获取全套免费C/C++企业实战级课程资源(素材+源码+视频)和编译大礼包二、代码解析//文件遍...

weixin_35355756的博客 6602

10xGenomics官方可视化工具——Loupe Browser

Loupe Browser是⼀款10xGenomics开发的交互式桌⾯应⽤程序,⽤于探索10x单细胞数据,可以用来找出感兴趣的细胞、找出显著差异表达的基因、鉴定细胞类型、探索细胞亚类和数据共享。

weixin_47195452的博客 3358

STM32入门学习之EXTI外部中断(STM32F030F4P6基于CooCox IDE)

下面的代码,是把PA0当做一个按键口,芯片内部上拉,按键闭合时,IO口被拉低,触发中断。 #include "stm32_lib/inc/stm32f0xx_rcc.h" #include "stm32_lib/inc/stm32f0xx_exti.h" #include "stm32_lib/inc/stm32f0xx_gpio.h" #include "stm32_lib/inc/stm32

1万+

YOLOv11改进策略【注意力机制篇】| SE、CBAM、ECA、CA、Swin Transformer等注意力机制全面解析与应用

本文详细介绍了五种主流的注意力机制及其在YOLOv11中的应用。通过合理的模块选择和位置部署,注意力机制能够显著提升目标检测性能。

QQ_778132974的博客 877

STM32F413库函数GPIO配置

GPIO的端口模式共有四种:输入模式(Input)、输出模式(Output)、复用模式(Alternate function)、模拟输入模式(Analog);

weixin_69040552的博客 807

【华为OD机试真题】45、 分糖果 | 机试真题+思路参考+代码解析(C++、Java、Py、JS)

### 🎃题目描述 >小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。 >  当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果。 >  小明最少需要多少次(取出、放回和平均分配均记一次),能将手中糖果分至只剩一颗。

正在更新最新华为OD机试2025B卷,提供OJ在线刷题 1290

OpenClaw 生成测试用例

OpenClaw 只是躯干,Skills 才是灵魂。很多同学觉得 OpenClaw 没用,就像是买了一台顶级电脑却没装操作系统。通过这四步走,不仅可以学会如何让 AI 干活,更重要的是,可以学会如何管理 AI 的能力。

十二测试录 738

GPIO_PULLUP,PULLDOWN, NOPULL

NOPULL: 对于输出IO,配置为NOPULL,当IO输出高电平时,IO为1, 当IO输出低电平时,IO为0; PULLUP:对于输入IO, 默认为高电平,当需要改变为低电平时配置为PULLUP。 比如:KEY_0右侧的IO端口应该配置为PULLUP,默认为高电平,当KEY_0按钮按下后,IO接地被拉低,变成低电平。这样才有按钮按下电平变化的效果。 PULLDOWN:同理对于输入IO, 默认为低电平,当需要改变为高电平时配置为PULLDOWN。 比如:KEY_UP右侧的IO端口应该配置为PULLUP,默

km161616的博客 1万+

Nacos 从困惑到蒙圈(9)Nacos 适配 达梦数据库【最新版】

介绍Nacos适配达梦数据库的详细步骤,包括对最新版本的支持改造。

甘蓝的专栏 1378

STM32F4XX IO口时钟复用功能

基于STM32F412,在PC9上输出System Clock 。 同理,也可以在PA8上输出其他的时钟功能。   GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; G

EFM32的专栏 5928

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

STM32F4学习笔记之GPIO(使用固件库)

1.使能GPIO的AHB时钟,使用函数:    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOx, ENABLE); 2.配置GPIO工作模式用GPIO_Init()函数 数据类型说明 typedef struct {   uint32_t GPIO_Pin;              //引脚配置 GPIOMode_TypeDef GPI

dingchao888的专栏 4926

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

STM32入门学习之GPIO(STM32F030F4P6基于CooCox IDE)(三)

先直接上代码 #include "stm32f0xx.h" #include "stm32_lib/inc/stm32f0xx_rcc.h" #include "stm32_lib/inc/stm32f0xx_gpio.h" int main(void) { //1、使能时钟 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); //

1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

STM32F030F4P6控制WS2811灯带

STM32F030F4P6 WS2811

qq_21229715的博客 2034

STM32学习笔记------GPIO介绍

以上是使用STM32F4xx标准外设库配置和使用GPIO的基本流程。通过理解结构体的各项配置以及常用的 GPIO 操作函数,可以轻松实现STM32F4系列微控制器的GPIO控制。

m0_63903713的博客 1793

STM32开发指南:STM32 GPIO引脚的上拉pull up、下拉pull down和无拉电阻no pull状态控制方法

此时,引脚与地之间存在一个高电阻。有许多硬件工程师设计电路时,会在GPIO口的外部设计上下拉电阻,这和内部配置pull up/down是一个目的,且效果相同。例如,在I2C通信中,SDA和SCL引脚通常需要开启上拉电阻,以确保在总线空闲时信号保持高电平状态。当GPIO处于input模式,需要根据默认的输入值来确定配置模式,如果默认输入的值为1时,最好配置为pull up,否则,最好配置为pull down;无拉电阻(No pull):当GPIO引脚未连接到电源或地时,引脚电平不受控制,可能会出现漂移。

锡盟码农的博客 1万+

STM32 Keil 应用篇一---------基于F030F4P6的超低成本ADC采集系统(串口输出)

这里写自定义目录标题 STM32 Keil 应用篇二----------------基于F030F4P6的超低成本ADC采集系统(串口输出) 最近STM芯片涨价比较厉害,有没有一种低成本的方案可以完成项目,并且又不需要花大量时间修改,学习新方案呢?笔者最近刷某宝时候无意中找到一款,分享给大家: 首先,上图:F030F4P6 48M主频,16K ROM,价格上跟51差不多,让传统的51单片机何去何从? 废话不多说,F030芯片资料稍微有点少(相比M3,M4主流芯片),工程代码搜集了2、3天,着急着给大

leotian966的博客 2546
上一篇: STM32入门学习之GPIO(STM32F030F4P6基于CooCox IDE)(寄存器操作版)
下一篇: STM32入门学习之USART中断(STM32F030F4P6基于CooCox IDE)
李工电子说
博客等级 码龄15年 221粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李工电子说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值