1. 测试环境:STM32C8T6
2. 测试模块:DHT11温湿度模块
3. 测试接口:
1. DHT11温湿度模块接口:
DS1302引脚 ---------单片机引脚
VCC--------------------3.3V
GND-------------------GND
DATA-------------------PA5
2. 串口使用串口一,波特率9600
单片机引脚---------CH340引脚
VCC--------------------VCC
GND-------------------GND
PA9--------------------RXD
PA10-------------------TXD
关键字:STM32 程序移植 DHT11
引用地址:
002_STM32程序移植之_DHT11
推荐阅读最新更新时间:2024-11-24 17:49
STM32之使用PWM控制多路舵机
前言 最近在玩一个6自由度的机械臂,我手上这台机械臂的核心控制器件就是那六个能够180度旋转的舵机了。想想之前在学校还没有系统性的把舵机给玩明白,所以就索性拿手上的STM32来自己写驱动代码,将6个舵机给驱动起来。 舵机控制原理 舵机的控制原理还是比较简单的,而且控制的角度和精度能够比较好的按照开发者的意愿来进行,因此经常被应用与一些控制类器械中,如机械手、云台、2自由度摄像头等产品中。 舵机的外接线一般分为3根线,电源线、地线和信号线,而控制舵机转动,就是通过信号线给舵机发送一系列的周期信号(一般的舵机的能接收的信号周期为20ms),然后通过控制周期信号的高电平的持续时间来达到控制舵机转动的目的。我手上的
[单片机]
stm32外设的使能,失能,复位的区别
首先明确的是,在STM32中所有外设正常工作的前提是使能了相应的外设,有的可能只用使能一个(如GPIO),有的使能两个(如GPIO和USART),有的可能需要使能三个(如GPIO,AFIO,TIM)。总而言之,只有使能了外设时钟外设才能工作。 所以外设使能实际使能的是外设的时钟,而与之相应的外设失能也是使外设时钟失能。外设失能后配置外设是没有作用的除非重新使能。 与以上两个不同的是外设复位,它是通过改变外设的复位寄存器来实现复位功能的,所以并不会去改变外设的时钟状态,再次使用这个外设不需要重新使能时钟,但是其他相关的一些配置还是必须的(如GPIO的输入输出状态会恢复默认值,需要重新配置)。
[单片机]
stm32专题十二:DEBUG调试宏 C语言 调试宏
调试宏在c编程中比较重要,通常用于前期测试打印调试信息,然后正式发布时,只需要修改宏,就能取消打印全部调试信息,非常方便。 fmt为希望输出的调试信息,比较关键的就是(fmt,...)和##__VA_ARGS__,__VA_ARGS__用于把...替换成宏并连接。 典型用法: void DefaultFlashSet(void) { // 若Flash标记地址的值没有被正确的写入,则重新写入,只会在全片擦除后执行 if ((InternalFlashRead(FLASH_SIGN_ADDR) != FLASH_WRITE_SIGN)) { DEBUG_INFO( Flash擦除 ); InternalFlas
[单片机]
STM32 PB4不能做普通IO解决方法
PB4默认是JTAG引脚,并置于上拉模式,所以没法直接当做普通的IO口拉低。可以复用为SWD下载方式,那么PB4就可以“省出来了 1 (RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);打开时钟 复用时钟 .执行端口重映射时,复用功能时钟得使能:RCC_APB2Periph_AFIO 2. GPIO_Remap_SWJ_Disable Full SWJ Disabled (JTAG-DP + SW-DP)此时PA13|PA14|PA15|PB3|PB4都可作为普通IO用了 为了保存某些调试端口,GPIO_R
[单片机]
STM32采用普通的IO口来测量PWM的频率
STM32测量外部输入信号的频率的方法有很多: 采用内部定时器输入捕获功能。 采用普通的IO口设置外部中断+定时器的当时测量PWM信号的频率。 这两种方式比较推荐使用第一种,比较使用内部的资源可以节省CPU资源的利用, 当然当内部资源不够使用的时候,或者是说,硬件电路设计的时候没有连接相应的应引脚只能使用第二种方式了。 本次由于硬件电路设计的不足,导致需要测量PWM输入信号的引脚没有接到相应的通道上,对此使用了第二种方式: 注意:这里定时器中断的优先级要高于外部中断的优先级 思路如下: 设置PWM输入信号的引脚为外部中断的方式,并且触发方式为GPIO_MODE_IT_RISING_FALLING 上升,下降沿均
[单片机]
STM32基础入门(二)——STM32入坑指南
1. 开发板的选择 学习STM32,不能绕开的第一件事,那就是开发板。 开发板的意义: 开发板提供了动手的机会。学习网上课程后,自己动手编程,并下载到开发板中,观察是否与预期结果一致,如果不一致,可以调试寻找原因。试错的经历是学习过程中最宝贵的经历。 开发板提供了足够的资源,包含硬件资源和软件资源 。硬件资源,即开发板上自带的LED、蜂鸣器、显示屏、以及其他芯片,可以让我们学习某一部件的时候可以直接上手;软件资源,即开发板配套的课程、例程。这些都是厂家根据这款开发板的特性设计的,新手很适合这样一步一步学习。 开发板调试外设非常方便。在后续自己做项目的时候,自己需要用到的很多东西,可以借助开发板来测试。举个例子,如果
[单片机]
我的STM32从菜鸟到牛人的学习步骤
1.首先我们先看看与STM32相关的文档 我们假定大家已经对STM32的书籍或者文档有一定的理解。如不理解,请立即阅读STM32的文档,以获取最基本的知识点。如果你手上拥有ST官方主推的STM32神舟系列的板子,那么光盘都会配好这些文档,STM32的学习与ARM9的学习有一个很大的区别。ARM9的学习一般是需要购买书籍的。比如三星的S3C2440,官方的文档都是英文的,大部分工程师只能去看国内出版的书籍。英文好的同学,请不要以为你很牛,可以只看英文文档。毕竟你是中国人,你最熟悉的,理解最好的还是中文。看英文的速度还是比看中文慢一些,我们要的是最短的时间,而不是追求短时间内记住所有细节。当然,如果是一篇论文,建议看英文原版还是有好处
[单片机]
STM32库函数之断言
我们在学STM32的时候函数assert_param出现的几率非常大,上网搜索一下,网上一般解释断言机制,做为程序开发调试阶段时使用。下面我就谈一下我对这些应用的看法,学习东西抱着知其然也要知其所以然。 4 断言机制函数assert_param 我们在分析库函数的时候,几乎每一个函数的原型有这个函数assert_param();下面以assert_param(IS_GPIO_ALL_PERIPH(GPIOx));为例说一下我的理解,函数的参数IS_GPIO_ALL_PERIPH(GPIOx),我们可以寻找到原型 #define IS_GPIO_ALL_PERIPH(PERIPH) (((*(uint32
[单片机]