STM32学习笔记:adc采样得到的电压值用485发送给pc

2023-11-11

采用adc1的通道10,将采集到的电压值用485发送给PC显示,
先上原理图,
这里写图片描述
这里写图片描述
源代码见附件,
这里想说的是几个要注意的问题:
1,ad输入的电压经过了R42和R44进行分压,所以pc显示的电压值将会减半,
2、采用这个函数进行发送数据的时候,每次都是发送一个8位的数据(即一个字节),也就是最大值为256,。超过1个字节默认发送地位,即你要发送的数据位0x0145,只会发送45,具体可以参考数据手册,下图,

USART_SendData(USART3,ADC_Value_B);

这里写图片描述
3,pc 机上收集到的数据,如果没有勾选“以HEX显示”则显示的是acsii码,而我们发送数据给PC机发送的则是hex,所以这里要进行一次转换。HEX–>ascii
4、控制485的发送和接收的引脚是TR485-U3–>PB12, 通过光耦隔离芯片,接到了485的RE’和DE上,由光耦可知,PB12=1,光耦中的1,2脚不导通,没有光发射到3,4引脚,RE’/DE输出为低电压,也就是RE’有效,接收数据。反之,PB12 = 0,发送数据。

//RS485发送len个字节.
//buf:发送区首地址
//len:发送的字节数(为了和本代码的接收匹配,这里建议不要超过64个字节)
void RS485_Send_Data(u8 *buf,u8 len)
{
    u8 t;
    RS485_TX_EN(0);         //设置为发送模式
    for(t=0;t<len;t++)      //循环发送数据
    {           
        USART_SendData(USART3,buf[t]);     
        while(USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET);//等待发送完成,标志位置1.
    }    

    while(USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET); //USART_FLAG_TC为发送完成标志位。如果使能了TC这个为的中断就会产生中断。置1; 
    RS485_TX_EN(1);             //设置为接收模式   
}

附件:
http://download.csdn.net/detail/qq_33559992/9581825

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32学习笔记:adc采样得到的电压值用485发送给pc 的相关文章

  • 如何更改闪存的起始地址?

    我正在使用 STM32F746ZG 和 FreeRTOS Flash的起始地址是0x08000000 但我想把它改成0x08040000 我通过谷歌搜索了这个问题 但没有找到解决方案 我更改了链接器脚本 如下所示 MEMORY RAM xr
  • c项目makefile多重定义错误

    这个问题是一个对应于创建的repexthis问题 在我的嵌入式 C 项目中 我有两个独立的板 我想为每个板创建两个 c 文件 master c 和 Slave c 其中包含自己的特定main 功能 我使用 stm32cumbemx 生成带有
  • 133-基于stm32单片机停车场车位管理系统Proteus仿真+源程序

    资料编号 133 一 功能介绍 1 采用stm32单片机 4位数码管 独立按键 制作一个基于stm32单片机停车场车位管理系统Proteus仿真 2 通过按键进行模拟车辆进出 并且通过程序计算出当前的剩余车位数量 3 将剩余的车位数量显示到
  • 135-基于stm32单片机超声波非接触式感应水龙头控制系统Proteus仿真+源程序

    资料编号 135 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DHT11传感器 电机 超声波传感器 制作一个基于stm32单片机超声波非接触式感应水龙头控制系统Proteus仿真 2 通过DHT11传感器检测当前
  • rt-thread studio中新建5.0不能用

    文章目录 一 版本对比 二 文件和文件夹打斜杠 在使用RT Thread studio创建新工程5 0版本的时候 结果发现新建完成之后程序不能正常运行 但是创建4 10版本的时候却能运行 那肯定是新版本出现了BUG 一 版本对比 首先对比了
  • 匹配 STM32F0 和 zlib 中的 CRC32

    我正在研究运行 Linux 的计算机和 STM32F0 之间的通信链路 我想对我的数据包使用某种错误检测 并且由于 STM32F0 有 CRC32 硬件 并且我在 Linux 上有带有 CRC32 的 zlib 所以我认为在我的项目中使用
  • HAL库学习

    CMSIS简介 CMSIS Cortex Microcontroller Software Interface Standard 微控制器软件接口标准 由ARM和其合作的芯片厂商 ST NXP 软件工具厂商 KEIL IAR 共同制定的标准
  • 毕业设计 江科大STM32的智能温室控制蓝牙声光报警APP系统设计

    基于STM32的智能温室控制蓝牙声光报警APP系统设计 1 项目简介 1 1 系统构成 1 2 系统功能 2 部分电路设计 2 1 stm32f103c8t6单片机最小系统电路设计 2 2 LCD1602液晶显示电路设计 2 2 风
  • STM32 GPIO工作原理详解

    STM32 GPIO介绍 1 STM32引脚说明 GPIO是通用输入 输出端口的简称 是STM32可控制的引脚 GPIO的引脚与外部硬件设备连接 可实现与外部通讯 控制外部硬件或者采集外部硬件数据的功能 以STM32F103ZET6芯片为例
  • [MM32硬件]搭建灵动微MM32G0001A6T的简易开发环境

    作为学习单片机的经典 自然是通过GPIO点亮LED 或者是响应按钮的外部中断例程 这我们看看SOP8封装的芯片MM32G0001A6T得引脚 除了VDD和GND固定外 我们可以使用PA14 PA1 PA13 PA15 PA2 PA3这六个G
  • 硬件基础-电容

    电容 本质 电容两端电压不能激变 所以可以起到稳定电压作用 充放电 电容量的大小 想使电容容量大 使用介电常数高的介质 增大极板间的面积 减小极板间的距离 品牌 国外 村田 muRata 松下 PANASONIC 三星 SAMSUNG 太诱
  • 串口通讯第一次发送数据多了一字节

    先初始化IO再初始化串口 导致第一次发送时 多出一个字节数据 优化方案 先初始化串口再初始化IO 即可正常通讯
  • Freertos低功耗管理

    空闲任务中的低功耗Tickless处理 在整个系统运行得过程中 其中大部分时间都是在执行空闲任务的 空闲任务之所以执行 因为在系统中的其他任务处于阻塞或者被挂起时才会执行 因此可以将空闲任务的执行时间转换成低功耗模式 在其他任务解除阻塞而准
  • 核心耦合内存在 STM32F4xx 上可执行吗?

    尝试从 STM32F429s CCM 运行代码 但每当我命中 CCM 中的第一条指令时 我总是会遇到硬故障 并且 IBUSERR 标志被设置 该指令有效且一致 STM32F4xx 是否可能不允许从 CCM 执行 数据访问效果良好 alios
  • STM32 Nucleo 上的上升沿中断多次触发

    我正在使用 STM32 NUCLEO F401RE 微控制器板 我有一个扬声器 经过编程 当向上 向下推操纵杆时 可以按设定的量改变频率 我的问题是 有时 通常 当向上 向下推动操纵杆时 频率会增加 减少多次 这意味着 ISR 正在执行多次
  • 嵌入式 C++11 代码 — 我需要 volatile 吗?

    采用 Cortex M3 MCU STM32F1 的嵌入式设备 它具有嵌入式闪存 64K MCU固件可以在运行时重新编程闪存扇区 这是由闪存控制器 FMC 寄存器完成的 所以它不像a b那么简单 FMC 获取缓冲区指针并将数据刻录到某个闪存
  • 在 Contiki 程序中使用 malloc

    考虑以下 Contiki 程序 include
  • STM32F0、ST-link v2、OpenOCD 0.9.0:打开失败

    我在用着发射台 http www ti com ww en launchpad about htmlgcc arm none eabi 4 9 2015q2 为 STM32F0 进行编译 现在我想使用该集合中的 arm none eabi
  • 当端点和 PMA 地址均更改时,CubeMX 生成的 USB HID 设备发送错误数据

    我正在调试我正在创建的复合设备的问题 并在新生成的仅 CubeMX 代码中重新创建了该问题 以使其更容易解决 我添加了少量代码main 让我发送 USB HID 鼠标点击 并在按下蓝色按钮时使 LED 闪烁 uint8 t click re
  • 移动数组中的元素

    我需要一点帮助 我想将数组中的元素向上移动一个元素 以便新位置 1 包含位置 1 中的旧值 new 2 包含 old 1 依此类推 旧的最后一个值被丢弃 第一个位置的新值是我每秒给出的新值 我使用大小为 10 的数组 uint32 t TE

随机推荐

  • gitlab合并不同分支的(二)种方法 git merge 分支

    gitlab分支 git merge 合并 文章目录 gitlab分支 git merge 合并 前言 一 第一种gitlab工具合并的方法 二 代码提交进行合并 总结 前言 提示 遇到的问题 以前在公司的开发 多人开发的时候是在统一个 m
  • 微信小程序 -- ios 底部小黑条安全距离兼容解决方案(转载)

    在苹果 iPhoneX iPhone XR等设备上 可以看到物理Home键被取消 改为底部小黑条替代home键功能 微信小程序和 h5 网页需要针对这种情况进行适配 否则可能会遇到底部按钮或选项卡栏与底部黑线重叠的情况 如下图 在微信小程序
  • 原来还有linux kernel api

    linux kernel api http www gnugeneration com books linux 2 6 20 kernel api 居然有人将linux kernel api给列出来了 这样编写驱动程序就是和编写普通程序一样
  • 区块链行业前景还好吗?区块链技术有没有经过时间的检验?

    一直有人在发问 被各种科技大佬们炒得那么火热的区块链技术 说到底 跟我们普通的 市井小民 有什么切身的关系利益吗 各位大佬们一口一个 改变未来 革命未来 未来又在哪里 各种吃瓜群众们还在观望的时候 区块链行业的小伙伴们 已经将区块链技术慢慢
  • Java:数值-字符串转换(String转Double)

    代码如下 String ss 3 141592653 double value Double valueOf ss toString
  • 【JavaScript——牛客网算法No.HJ26】字符串排序(字符串里英文字母按字典顺序重新排列,其他字符保持原位)附:详细排坑经历

    No HJ26 字符串排序 problem description 编写一个程序 将输入字符串中的字符按如下规则排序 规则 1 英文字母从 A 到 Z 排列 不区分大小写 如 输入 Type 输出 epTy 规则 2 同一个英文字母的大小写
  • 4.1.3.1Spring源码解析——createBean方法细节之doCreateBean

    先贴代码 doCreateBean方法位于AbstractAutowireCapableBeanFactory方法中 前面已经解析了CreateBean方法 可以点这里传送CreateBean方法解析 protected Object do
  • 剖析算法:解决问题的艺术

    前言 一 实战中的精选算法 工作和学习的无法替代的助手 1 1 效率之王 排序算法 如快速排序和归并排序 1 2 寻路之魔 图算法 如 Dijkstra 算法和贝尔曼 福特算法 1 3 问题解决之神 动态规划算法在复杂问题中的应用 1 4
  • 张量(二):张量分解(tensor decomposition)

    与矩阵分解一样 我们希望通过张量分解去提取原数据中所隐藏的信息或主要成分 当前主流的张量分解方法有CP分解 Tucker分解 t SVD分解等 更新的方法大多是在他们的基础上做进一步的改进或引用 因此 张量分解也是张量算法的基础 下面分别做
  • python 线程池使用

    前段时间发现了一个 人工智能学习网站 通俗易懂 风趣幽默 分享一下给大家 学习链接 文章目录 线程池使用 1 线程池介绍 2 使用方法 2 1 threadpool 2 2 ThreadPoolExecutor submit as comp
  • 9-数据结构-单链表头插法尾插法

    问题 单链表头插法与尾插法 思路 头插法 类似于前面的在末位置前 插入元素 最后创建完为逆序 尾插法 则是定一个尾指针r 每次接入新的结点s 随后r s 即r往后移位 详解 头插法 先初始化链表l l linklist malloc siz
  • SOCKS5代理是什么?

    嘿 今天我们来聊一下SOCKS5代理 你听说过吗 如果你对网络安全 隐私保护或者访问限制有一点点兴趣 那么你一定不能错过这个话题 别担心 我会以轻松有趣的方式给你解释清楚 让你对SOCKS5代理有个全面的了解 首先 我们先来搞明白什么是代理
  • js逆向--百度滑块验证码

    声明 本文章中所有内容仅供学习交流 不可用于任何商业用途和非法用途 否则后果自负 如有侵权 请联系作者立即删除 由于本人水平有限 如有理解或者描述不准确的地方 还望各位大佬指教 在工作中遇到了百度的滑块 翻了下csdn以及公众号发现没人写
  • vue2.0 自定义指令 + 案例:v-lazy-loading、v-drag、v-resize、v-copy

    文章目录 1 自定义指令 文档说明 1 1 全局注册 局部注册 1 2 钩子函数 2 案例一 property 的自定义钩子样例 3 案例二 动态指令参数 4 案例三 element ui 自定义el select的下拉懒加载指令v laz
  • C函数调用机制及栈帧指针

    转载 http bbs csdn net topics 90317145 http blog chinaunix net uid 26817832 id 3347227 html 帧指针 和栈指针到底是什么 有什么联系吗 帧指针指向帧头 栈
  • NCRE——网络工程师——网络技术

    对计算机发展具有重要影响的广域网 ARPANET 第一个运营的封包交换网络 IP电话系统有4个原件 网关 终端 网守 多点控制单元 通过MCU实现多点通信 网关可以看作H 323设备 IP电话中 网关的功能包括 A 号码查询 B 信号调制
  • 时序预测

    时序预测 MATLAB实现BP神经网络未来多步预测 目录 时序预测 MATLAB实现BP神经网络未来多步预测 预测效果 基本介绍 模型描述 程序设计 参考资料 致谢 预测效果 基本介绍 本次MATLAB实现BP神经网络时间序列未来多步预测
  • cmake生成动态链接库

    使用CMake生成动态链接库的步骤如下 1 在CMakeLists txt文件中指定要编译的源文件 例如使用add library命令 2 使用CMake生成Makefile文件 3 在终端中进入到CMake生成的Makefile文件所在的
  • 二、nginx server基础配置[root、alias、index]

    一 root 解释 root与alias类似 root其寻找文件是root地址 location 如下例子会去 var www html work下面寻找文件 如http localhost 80 work ab html其会寻找 var
  • STM32学习笔记:adc采样得到的电压值用485发送给pc

    采用adc1的通道10 将采集到的电压值用485发送给PC显示 先上原理图 源代码见附件 这里想说的是几个要注意的问题 1 ad输入的电压经过了R42和R44进行分压 所以pc显示的电压值将会减半 2 采用这个函数进行发送数据的时候 每次都