STM32
文章平均质量分 81
yuanmeixiang
这个作者很懒,什么都没留下…
展开
-
2021-05-06
一、GPIO基本结构:二、GPIO工作方式:u4种输入模式:输入浮空、输入上拉、输入下拉、模拟输入u4种输出模式:开漏输出、开漏复用功能、推挽式输出、推挽式复用功能u3种最大翻转速度:-2MHZ-10MHz-50MHz(1) GPIO_Mode_AIN 模拟输入(2) GPIO_Mode_IN_FLOATING 浮空输入(3) GPIO_Mode_IPD 下拉输入(4) GPIO_Mode_IPU 上拉输入(5) GPIO_Mode_Out_OD 开漏输出(6) GPIO_Mo..原创 2021-05-06 06:46:36 · 239 阅读 · 0 评论 -
MQTT通信协议 剩余长度总结
2.2.3 剩余长度位置: 从第 2 个字节开始。剩余长度(Remaining Length) 表示当前报文剩余部分的字节数, 包括可变报头和负载的数据。 剩余长度不包括用于编码剩余长度字段本身的字节数。剩余长度字段使用一个变长度编码方案, 对小于 128 的值它使用单字节编码。 更大的值按下面的方式处理。低 7 位有效位用于编码数据,最高有效位用于指示是否有更多的字节。 因此每个字节可...原创 2020-02-13 07:32:45 · 3481 阅读 · 0 评论 -
STM32 FSMC 地址
图中只画出了数据线与地址线其他的线我没有花,请各位脑部一下,实在不行去看原子提供的LCD的原理图。LCD有一个引脚是D/C引脚,用来区分往LCD中写入的数据是命令还是数据Data/Command比如说我要给LCD控制器的X寄存器写入数据Y那么我需要先给LCD发送一个命令----X寄存器的地址,此时D/C引脚为低电平然后再发送一个数据Y,此时D/C引脚为高电平。但是正常的FSMC总...转载 2020-02-05 18:16:07 · 2663 阅读 · 0 评论 -
STM32のPWM
STM32 中用定时器产生脉冲宽度调制(PWM)输出 STM32 中的定时器除了 TIM6 和 TIM7,其它的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1、TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4 路的 PWM 输出STM32 中占空比寄存器 STM32 的 PWM 是 TIMx_ARR 寄存器确定频率(周期)、由能原创 2016-11-18 06:35:20 · 1446 阅读 · 0 评论 -
关于SPI的一点总结
1 由于产品需要现在想共用SPI总线而且是用模拟SPI的方式来实现,共用的方式为SPI有4根线分别为MOSI MISO NSS CLK 两个IC共用MOSI MISO CLK 但是NSS分开当用那个的时候,将那个的NSS拉低平时拉高,但是实验的时候发现只有一个可以另外一个不行。实验啦好几次都不可以。后来向供应商请求支援,供应商说一般模拟很少共用,只有硬件SPI才共用,但是理论上是可原创 2017-03-31 20:07:35 · 769 阅读 · 0 评论 -
UC_COS移植到STM32
1 在外设篇里面的点亮液晶屏(17)的基础上移植液晶屏1 下载GUI解压放到工程的根目录下图片12 将GUI里面的文件夹全部添加到工程文件里面。图片23 把GUI里面每个文件夹里面的文件加入到工程。 1 在添加Config的时候,因为Config里面都是头文件所以需要选择Allfile文件类型然后在选择全部文件添加。 2 字体先不添加,以后编译的时候需要那原创 2017-03-16 07:05:35 · 1316 阅读 · 0 评论 -
STM32F103R8T6系统移植到STM32F103RCT6
1 由于工作需要原来的STM32F103R8T6需要升级到RCT6由此也需要把软件系统移植到RCT6但是移植过来的时候由于r8的定时只有T1--T4 ,RC有6个定时器所以遇到自己认为很奇怪的问题。问题1 代码移植过来后发现有些定时器根本不工作,时钟也使能啦,定时器也配置啦,根本找不到什么问题,被逼的没办法啦。后来就更新ST公司给的配置文件。原来工程配置文件需要更新为下面这两个配置文件原创 2017-04-17 17:36:05 · 6351 阅读 · 0 评论 -
STM32F10x下载口的用法
对于初学习者来说为什么用到PB3和PB4时无法控制输出呢? 下面就这一问题进行分析讲解。 首先,STM32F10x系列的MCU复位后,PA13/14/15 & B3/4默认配置为JTAG功能。有时我们为了充分利用MCU I/O口的资源,会把这些 端口设置为普通I/O口。具体方法如下: 在GPIO_Configuration(); // 配置使用的 GPIO 口:原创 2017-04-06 08:36:26 · 653 阅读 · 0 评论 -
互补PWM中关于死区对占空比的影响
1 今天在做项目的时候遇到一个很奇怪的问题,我的PWM频率设置为28K 定时器占空比设置为一个定值比如400,但是遇到一个很奇怪的问题,第一个占空比会大一些,以后的占空比都是同样大的但是会比第一个占空比小一些,这时候我设置的占空比为3us。2 当我把占空比设置为1us占空比都是一样大。这是为什么呢。3 可见死区是占用占空比的时间由于没有图片所以先写在这里做一个记号。知道的朋友也可以帮忙原创 2017-04-20 19:20:21 · 4791 阅读 · 1 评论 -
STM3216位IO口操作的一些教训
最近在用TFT屏的时候走啦不少弯路,因为TFT屏都是16位的,所以大部分的都是采用一组IO口对应16个数据位刚好并口传输数据,最近因为IO口紧缺,所以想要改成串口,但是发现串口刷新屏幕太慢所以最后改成8位的并口,但是STM32操作IO口的寄存器是16位的。也就是说用并口的话一起传输数据进去虽然只用8位但是操作还是16位一起操作,虽然有8位没用到但是还是在传输数据进去的时候被一起操作,会把不用的8位原创 2017-05-05 20:12:24 · 10257 阅读 · 2 评论 -
STM32IO口8位操作移位的方式
当我们采用并口传输数据的时候都会用如下的方法进行数据传输#define DATAOUT(x) GPIOB->ODR=x;STM32IO口都是16位的,所以当调用DATAOUT的时候就直接对GPIOB的16个IO口总体进行操作。但是我们如果只是选择高8位或者低8位的时候就需要进行移位操作,到底该怎么移位呢现在我们来看如下代码。如果我们选择的是0-7位IO口那么传输数据的时候代码如下原创 2017-05-05 20:40:27 · 11658 阅读 · 1 评论 -
关于使用STM32 SPI3的一些总结
总结一下spi3的问题,因为spi3的nss口与JTAG有共用引脚,所以配置错误会导致SPI3无法使用。需要注意以下三点就可以了: 1.将PA15配置为普通IO口,GPIO_Mode_Out_PP 2.开启AFIO时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); 3.关闭JTAG功能,使能SWD GPIO_PinRemap原创 2017-05-10 08:14:10 · 14223 阅读 · 0 评论 -
SPI通讯逻辑分析仪测试总结
1 今天测试的时候发现数据很怪测试的时钟信号不对其他的信号 DI 和DO也不对此时应该检查软件设置是否正确。逻辑分析仪需要设置好如下几个地方1 采样频率需要提高 2 SPI通讯模式是否设置正确,因为SPI有四种通讯模式当spi通讯的时候只能选择其中一种,逻辑分析仪的通讯设置也只能是设置为其中的一种(编程的时候选择的那一种)3 需要弄清楚是在时钟的下降沿进行数据的输入还是原创 2017-08-29 22:32:54 · 10534 阅读 · 1 评论 -
WQ25之模式纠结
最近需要把数据保存到falah但是单片机flase不够用,所以外加一个flash网上看到所有的例子都是用模式3,没找到用模式0的。拷贝原子的代码发现设置为0模式0不可以郁闷啊。所以各种试一下。最后改变时钟发现可以啦,当设置为模式3的时候2分频,但是现在改用模式0,改用256分频可以啦。啊怎么会这样呢!!!!原创 2017-09-01 15:25:38 · 670 阅读 · 0 评论 -
STM32高级定时器死区计算方法
https://blog.csdn.net/wzw71734/article/details/52811081http://www.51hei.com/bbs/dpj-41905-1.htmlhttp://www.openedv.com/posts/list/62861.htm转载 2018-06-26 22:41:07 · 1515 阅读 · 0 评论 -
STM32F0xx_TIM输出PWM配置详细过程
前言前面我说过STM32的定时器功能很强大,今天就来总结一下它的另外一个“强大”功能:TIM的比较输出功能,输出可调PWM波形。直接调用函数接口“TIM2_CH1_PWM(uint32_t Freq, uint16_t Dutycycle)”传入频率和占空比就能输出指定的波形。我提供的软件工程直接调用是比较简单就能实现想要的PWM波形。但是,如果你是学习者,建议还是进去函数把每转载 2016-11-18 06:50:58 · 9876 阅读 · 3 评论 -
小白弱弱的问下各位大虾,关于STM32中的闪存存储器的问题
弱弱的问下各位大虾,STM32中的闪存存储器的作用是什么?闪存的容量大小对具体设计有什么影响?闪存就是flash存储器,主要用来存程序用,属于非易失性存储器,你编译后的hex文件就是烧写在flash里。需要的大小主要取决你的程序编译后有多大。通过软件也可以在程序运行时读写flash,因此flash也可以用来存储一些需要掉电不丢失的数据原创 2016-11-25 06:44:51 · 1253 阅读 · 0 评论 -
STM32用SysTick来做定时器
1 硬件电路配置原创 2016-11-01 06:50:59 · 693 阅读 · 0 评论 -
STM32 时钟系统
这一篇转摘的文章关于STM32时钟系统的描述转载 2016-10-23 17:41:45 · 552 阅读 · 0 评论 -
STM32GPIO的描述
STM32GPIO原创 2016-10-23 19:37:08 · 1166 阅读 · 0 评论 -
蜂鸣器知识
1 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。2 有源蜂鸣器和无缘蜂鸣器有源蜂鸣器和无源蜂鸣器的外观如图 a、b 所示a 有源 b)无源。从图 a、b 外观上看,两种蜂鸣器好像一样,但仔细看,两者的高度略有区别,有源蜂鸣器 a,高度为 9mm,而无源蜂鸣器 b 的高度为8原创 2016-10-25 21:54:55 · 1751 阅读 · 0 评论 -
一个不错的按钮检测程序
效率不错的按钮检测程序原创 2016-11-07 06:33:04 · 872 阅读 · 0 评论 -
STM32 SysTick定时器常见问题及延时函数的实现
Q:什么是SYSTick定时器?SysTick 是一个24 位的倒计数定时器,当计到0 时,将从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息。Q:为什么要设置SysTick定时器?(1)产生操作系统的时钟节拍SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。在以前,大多操作系统需要转载 2016-10-26 11:17:05 · 6616 阅读 · 0 评论 -
关于STM32的systick定时器的详细说明
我不得不说意法半导体确实有点风骚!甚至有点变态。我对ST文档 STM32F10XXX参考手册的编辑水平真是不敢恭维。手册中好多说明都是含糊不清,甚至将好多对初学者来说很重要的地方都一笔带过,让人着实摸不着头脑。比如前面我说过的关于NVIC嵌套向量中断控制器的介绍,这部分我认为是非常重要的,但当你看完他这部分介绍,你根本不会设置中断服务程序,他有哪些寄存器都不知道,更别说去设置了,NVIC的详细介绍转载 2016-10-26 11:57:01 · 1695 阅读 · 0 评论 -
PID算法分析
原创 2016-11-29 07:01:50 · 381 阅读 · 0 评论 -
除法和乘法的移位处理
用移位实现乘除法运算 a=a*4; b=b/4;可以改为: a=a b=b>>2;说明:除2 = 右移1位 乘2 = 左移1位除4 = 右移2位 乘4 = 左移2位除8 = 右移3位 乘8 = 左移3位...原创 2016-11-13 11:21:45 · 11638 阅读 · 1 评论 -
stm32中断描述
外部中断配置原创 2016-11-14 06:45:37 · 902 阅读 · 0 评论 -
STM32详细配置のUSART
前言串口对于处理器来说算是一种标配,也是在软件开发中必不可少的,那就是使用串口来调试信息(打印出相应的信息)。STM32F0系列的芯片,串口根据型号不同,数量也不同,从1个到8个不等。今天主要总结串口简单且常用的功能,发送字符和中断接收字符。今天提供的串口发送功能将在后面的各个模块总结中都需要使用到,主要用于验证和测试各项功能的正确性。下载ST标准外设库和参转载 2016-11-21 07:17:49 · 586 阅读 · 0 评论 -
USARTSTM32
USART 功能概述USART 接口通过三个引脚与其它设备连接在一起。任何 USART 双向通信至少需要两个脚:接收数据输入(RX)和发送数据输出(TX)。RX:接收数据串行输入。通过采样技术来区别数据和噪音,从而恢复数据。TX:发送数据串行输出。当发送器被禁止时,输出引脚回复到它的 I/O端口配置。当发送器被激活,并且不发送数据时,TX 引脚处于高电平。在单线和智能卡模式里,此原创 2016-11-21 07:32:49 · 509 阅读 · 0 评论 -
STM32ADC
4.11.1.1 ADC 概念ADC 就是模拟量输入转换成数字量。我们先简单介绍一下逐次比较型 A/D,逐次比较型 A/D 包括 n 位逐次比较型 A/D 转换器如图 1 所示。 它由控制逻辑电路、 时序产生器、 移位寄存器、D/A 转换器及电压比较器组成。图 1 的电路,它由启动脉冲启动后,在第一个时钟脉冲作用下,控制电路使时序产生器的最高位置 1, 其他位置原创 2016-11-23 07:24:40 · 4825 阅读 · 0 评论 -
C语言存储单位
原创 2016-11-25 06:29:22 · 1173 阅读 · 0 评论 -
ROM、RAM、DRAM、SRAM和FLASH的区别
什么是ROM、RAM、DRAM、SRAM和FLASH的区别来源: 作者:关键字:ROM RAM DRAM SRAM FLASH ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据转载 2016-11-25 06:42:00 · 1613 阅读 · 0 评论 -
STM32 时钟
stm32时钟树基础讲解先来说明两个概念主干假设外部使用8M晶振作为stm32时钟输入源,则这个8M就是主干分支 最终的外部设备,比如GPIO我们来分析一条时钟脉络3 - 5 -7 - 21- 8- 9 11- 133 首先外部8M晶振输入5 PLL 选择位 作用为选择后续PLL分支的输入时钟(假设选择外部晶振)7 设置外原创 2016-10-21 23:25:21 · 416 阅读 · 0 评论