粉丝1.2万获赞2.5万


stm 三二 v 控制器系列提供了多个模拟数字转换器, a、 d、 c 模块用于实现模拟信号的采集和转换为数字信号 a、 d、 c 在很多应用中都是非常重要的,例如传感器数据采集、电压测量等。 在 stm 三二中, adc 可以通过 stm 三二 hl 库提供的函数接口进行配置和操作。主要的步骤包括,初始化 adc 模块 配置转换参数,选择采样通道、启动转换并获取转换结果。下面是使用 stm 三二 hl 配置 adc 的一般步骤。初始化 adc 模块使用 hladc net 函数。初始化 a、 a、 d, c 模块,可以选择使用单通道模式还是多通道模式,以及设置采样时间等参数。配置转换参数,使用 h l, a、 d, c config channel 函数配置 a、 d、 c 转换的参数,例如选择采样通道、采样分辨率、数据对齐方式等。 启动转换,使用 h l, a、 d, c start 函数启动 a、 d、 c 转换,可以选择使用软件触发还是外部触发获取转换结果,使用 h l, a, d c get value 函数获取转换结果,可以选择阻塞方式获取结果, 也可以使用中断或 dma 方式获取结果。此外,还有一些其他的配置和操作,例如设置参考电压、配置触发源、设置转换模式等。在使用 adc 时需要注意以下几点, 采样时间,根据信号的特性和采样频率选择合适的采样时间。采样时间要足够长,以确保信号能够被稳定采集。采样通道,选择需要采集的模拟信号通道。 s t m 三二支持多个模拟通道, 可以选择单通道模式或多通道模式。数据处理获取到的 adc 转换结果是一个数字值,需要根据具体应用进行相应的处理。例如转换为工程单位或进行数据率波。 参考电压 a d c。 转换的结果会根据参考电压进行归一化,需要根据具体的电路设计和电源情况进行合理设置。总结来说, s t m 三二的 a d c 模块通过 s t m 三二 h a l 库提供的函数接口进行配置和操作,包括初始 adc 模块配置、转换参数选择、采样通道启动转换并获取转换结果。在使用 adc 时,需要注意采样时间、采样通道数据处理和参考电压等方面的设置。
![[stm32]ADC模数转换,实现小灯自动点亮](https://p3-pc-sign.douyinpic.com/image-cut-tos-priv/7f6e001c100b3fb53d46938d6487da84~tplv-dy-resize-origshort-autoq-75:330.jpeg?lk3s=138a59ce&x-expires=2091898800&x-signature=wqlRYtF4JWKIFB%2BHWU0X8r2xjrI%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=cover&biz_tag=pcweb_cover&l=2026041903252690B5D6DA1AAD5FFBBEBF)


stm 三二 gpio 小知识, gpio 的八种工作模式是什么?什么是开漏?什么是推碗?跟着我一起看下吧! gpio 就是通用输入输出端口,通俗来说就是单片机的影角,单片机通过 gpio 控制其他元件工作。 stm 三二的影角有很多,但是每个影角内部基本结构都是一样的,我们来一起看一下吧。这是基本结构框图, 看懂这张图就能搞懂 g p i o 了。 g p i o 可以配置八种工作模式,至于是哪八种,我们一会就讲。 gpio 银角电瓶零到三点三伏,部分银角可容忍五伏,具体可以看数据手册,带 ft 标识的就是可以兼容五伏的银角了。上下这两个二级 极管适用于防止外部过高过低的电压输入而烧毁芯片。当引脚电压高于 vdd 时,上方二极管导通电流就会流进这一条路径,而不会流进单片机内部。 同理,当点压低于 vss 时,下方二极管导通电流流经这条路径,这样就保证了银角电瓶在 vss 到 vdd 之间,从而保护了芯片内部安全。我们先分析一下上半部分, 这里两个电阻就是上拉和下拉电阻了,这里两个开关可以编程控制,上面导通,下面断开就是上拉输入模式,上面断开,下面导通就是下拉输入模式。 上下都断开就是浮空输入模式。这两个上拉下拉电阻的目的是给单片金银角确定一个电 电瓶,如果外部没有接确定的电瓶,内部也没有上下拉引脚,电瓶就会极易受到干扰,从而没有准确的电瓶。 如果借了上拉电阻,那么银角默认就是高电瓶。如果借了下拉电阻,那么银角默认就是低电瓶。 这个触发器的作用是滤除电压的波动,经过这个触发器之后,就将电压数据输入到计存器中保存起来了。在程序中,只要读取这个计存器就可以制造电瓶的数据了。 这两部分是接到单片机内部外设的模拟输入,就是接到 a、 d c 上,因为 a、 d、 c 需要模拟数据,所以就不需要触发器稳定电瓶。而直接接到触发器之前,这个附用端口就是提供给其他需要读取引脚电瓶外设使用的, 比如串口输入等。看完输入部分,我们再来看一下输出部分,输出部分有两部分控制,一个是输出计存器控制,一个是外设服用控制,两种方式通过这个数据选择器接到引脚。 如果选择输出计存器控制,就是普通的 io 口输出程序,写这个计存器就可以操作 io 口输出高低电瓶了。 旁边还有一个为设置清除寄存器,因为这个输出寄存器是控制多个 io 口输出,要想控制某一个 io 口,就需要这个为设置清除寄存器了,它可以设置或者清除某一位,而不改变其他寄存气味。 我们继续看输出控制之后有两个 mos 管,上面是 p mos, 下面是 n mos, 他们是一种电子开关,我们可以 编程控制开关。将 io 接到 v d d 还是 v s s。 这里可以选择三种工作模式,推碗开漏或关闭。在推碗输出模式下, pmos 和 m os 均有效。 当输出寄存器为一时,代表要输出高电瓶,一传到输出控制这里,输出控制器就控制 pmos 导通 amos 关闭, i o 口就接到了 v d d, 也就是输出了高电瓶。当输出计存器为零时,代表要输出低电瓶。零传到输出控制这里,输出控制器就控制屏 mos 关闭, at most 导通, i o 口就接到了 b s s, 也就是输出了低电瓶。 这种模式下, io 口有着较强的驱动能力。在开漏输出模式下, pmos 会一直处于无效状态, 只有 imos 在工作。当输出计存器为一时,代表要输出高电瓶。一传到输出控制这里,输出控制器控制 imos 关闭,此时输出就相当于断开,也就是高阻模式。当输出计存器为零时,代表要输出低电瓶。 临传到输出控制这里,输出控制器就控制 m o s 导通,此时 i o 直接接到了 b s s, 也就是输出低电瓶。 这种模式下,只有低电瓶有驱动能力,高电瓶是没有驱动能力的,这种模式可以作为通信协议的驱动方式。 iphone c 就是使用的开漏输出模式。另外一个状态就是输出关闭,匹 mos 与 n mos 均无效,当引脚配置为输入模式时,两个 mos 管都无效,也就是输出关 关闭,这就是整个的引脚结构了。我们来总结一下几种工作模式,一、浮空输入,可读取引脚电瓶,若引脚悬空,则电瓶不确定。二、上拉输入,可读取引脚电瓶内部连接,上拉电阻,悬空时默认高电瓶。 三、下拉输入,可读取引脚电瓶内部连接,下拉电阻,悬空时默认低电瓶。 四、模拟输入, gpl 无效,银角直接接入内部 adc。 五开漏输出,可输出银角电瓶,高电瓶为高组态,低电瓶接 vss。 六推碗输出,可输出引脚电瓶,高电瓶接 v d d, 低电瓶接 v s s。 七附用开漏输出 由片上外设控制。高电瓶为高阻肽,低电拼接 v s s。 八附用推碗输出,由片上外设控制。高电拼接 v d d, 低电拼接 v s s。 以上就是今天全部内容了,欢迎留言讨论,我们下期见!

兄弟们,今天我们来看一看,把程序放在 m 里面执行效果会怎么样?这次我是把 bc 中断里面的程序放进去,我们先来看一下麻盆键变异之后的程序地址就放在这里面, 现在看的是 pi 计算的函数,可以看到他的位置是在福安区的八开头的。好的,那我们先下载到样机上面做个验证,这个程序里面我用了一个函数去计算一秒钟内 idc 程序程序执行时间的占比,我们现在来看看实际程序执行情况,就是这个使用率,这个地方现在大概是百分之六十七,六十六左右。 现在我们回到程序中,我们把程序放到 ram 中,然后同样把程序编译并且 下载进去,让我们来看一看这样做能提高多少执行速度。现在下载完了, 让我们先确认一下程序的位置,可以看到程序现在的地址是凌晨二十开头的,也就是说现在程序的位置是储存在了 ram 区间,现在的数值是百分之六十六,百分之六十五左右, 这样看起来好像也没有增加多少,看起来好像提高的效果并不是很明显,大家知道是什么原因吗?


如何快速创建 stm 三十二工程?我这里使用的是 stm 三十二 qbm x, 这是一个可视化 stm 三十二代码生成软件。下面由我演示下如何创建工程。 首先选择好自己需要的芯片型号,不同的芯片会有不同配置下, 为了方便调试,我这里开启 swd 调试功能,并且启用了外部始终。接着是设置单片机工作频率, 这里只需要输入想要的频率,然后点击回车就可以自动计算出分频参数,这个功能太方便了。最后一步是给工程取一个高端霸气的名字,我是使用 carry 开发,所以开发环境选择 m d k。 最后点击右上角的生成 按钮,生成工程代码,编译并运行下代码,测试下是否正常。对了,如果想看生成代码的大小,还需要指定一下 map 文件的存储位置,然后再重新编译一下项目,双击工程名字就可以看到了。 为了跟踪代码变化,我会用 d 来管理代码,不过项目中每次编译都会生成很多临时文件,需要把这些文件忽视名单中,这样即使这些文件变化也不会被跟踪。然后对代码进行第一次提交。 然后我们重新打开 q b m x, 添加一些新配置,重新生成一下代码试试效果。可以看到给已经把被修改过的代码标记 出来,但是 visco 无法显示中文,因为 carry 是使用 g b k 编码,而 visco 的是 u t f 八,所以这里要强制指定 g b k, 所以可以像我这样创建配置文件。 visco 的打开就会默认使用 g b k 编码,打开 中文就不会再乱码了, bt 也把对应的修改内容高亮显示,可以放心大胆的修改代码了。好了,就说到这里,要是觉得本视频对你有用,记得给我点个关注。