Openmv,stm32串口(定时器配置)

2023-11-13

新手学习记录中:

得先有from pyb import UART的包以及import json

初始化uart=UART(3,115200)表示是在串口3处,其波特率为115200

(需要看openmv的原理图,看uart3的TX和RX是哪两个IO口,通过TTL与其通信)

接线方式:TX-RX,RX-TX,GND-GND,VIN-VCC

初始化也可用uart.init(115200,bits=8,parity=None,stop=1)来表示:

打包数据:通过struct模块的pack函数将数据封装成字符串(二进制传输): 

前面的格式可以参照此表(几个字符几个整型):

 其次是两个帧头,stm32可通过帧头来判断该数据是不是openmv所发送的数据

后两个即为所要传输发送的数据,可在最后加上一个帧尾,32可通过此知道数据接收结束

一般有关openmv通信的相关函数就这几个:

其次就是stm32的串口:

我所使用的STM32F103ZET6开发板已经装载了USB-TTL芯片,所以不需要外接模块,用USB线直接连接即可。

 若需要外接USB-TTL模块,接线方式为:RX-TX,TX-RX,GND-GND

使用cubemx配置32串口:

其中UART是只支持异步串口,USART除异步串口外还支持同步串口,所以我这里选择USART。

要将MODE改为Asynchronous,下面的配置如果想要稳定,波特率可设为9600,想要快速的话,可设为115200。其他一般保持不变

 

之后再在GPIO Settings处看串口是否为所需串口。之后即可生成代码

阻塞式收发:

 

供电之后需要将代码先烧进32板中,再打开串口助手进行调试

需要注意:板上的USART需要用跳线帽盖住,不然烧代码会一直显示超时。而且烧完之后记得要按复位键,再用串口助手。

也可用printf函数来进行串口输出:

首先需要加上printf的头文件

 

再写上fputc函数

 

在while(1)处写上即可

要接收发出去的数据可用:(在while里面)

        uint8_t buf[5];
        HAL_UART_Receive(&huart1,buf,3,0xFFFF);
        HAL_UART_Transmit(&huart1,buf,3,0xFFFF);
 接收数据也可写接收函数:
int fgetc(FILE *stream)
{
    uint8_t ch[1];
    HAL_UART_Receive(&huart1,ch,1,0xFFFF);
    return ch[0];
}

while里面加上:

        int val=0;
        scanf("%d",&val);
        printf("%d\r\n",val);

 使用中断收发,需要再在cubemx上配置:

在NVIC中对所用串口进行打勾并将优先级改为1。

生成代码即可

中断函数:

 上图的Transmit函数即为发送函数

 接收函数:

每发送或接收一个数据都会再次进入中断函数中 

定时器配置:

 配置中的Prescaler是看时钟树

右边APB1 Timer为8,所以Prescaler需要8-1

看视频说要将Count Period改为500000-1,但是我的无论怎么改都还是65535(应该没影响吧)

之后再将NVIC中的定时器TIM2打勾,改优先级即可生成代码 

若以上有任何错误,欢迎大家在评论区指出,我很希望得到建议和改正 

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

Openmv,stm32串口(定时器配置) 的相关文章

  • C语言宏定义、宏函数、内置宏与常用宏

    前言 在C语言中 变量类型 循环控制 基础语法等与其他高级语言基本无异 而C语言 C 特有的两把双刃剑指针和宏定义 宏函数使得C语言在底层开发中披荆斩棘 无所不能 这两个概念涉及范围比较广 其分支点也比较多 可谓星罗棋布 但这每颗星都足以照
  • JAVA中的成员变量和局部变量的区别

    成员变量与局部变量的区别 类中的位置不同 成员变量 类中 方法外 局部变量 方法内或方法声明上 作用范围不同 成员变量 类中 局部变量 方法中 初始化值的不同 成员变量 有默认值 局部变量 无默认值 练习 说明x和y和z哪个是局部变量哪个是

随机推荐

  • 【C++】红黑树

    文章目录 红黑树的概念 红黑树的性质 红黑树的节点定义 红黑树的结构 红黑树的插入操作 红黑树的验证 红黑树删除 红黑树模拟实现STL中的map与set 改造红黑树 map的模拟实现 set的模拟实现 红黑树的概念 红黑树 是一种二叉搜索树
  • 测试开发知识总结(一)

    本文内容顺序 测试基础理论 测试岗经常被问到的场景题 智力题 测试岗高频算法题 数据库 Linux知识点 常用自动化测试工具 1 Appium 官网 http appium io AppUI自动化测试 Appium 是一个移动端自动化测试开
  • TransUNet: Transformers Make Strong Encoders for Medical Image Segmentation

    TransUNet Transformers Make Strong Encoders for Medical Image Segmentation 发表时间 2021年2月 发表期刊 Arxiv Abstract 医学图像分割是发展医疗保
  • Spring- 上传文件 MultipartFile.transferTo() 报错 FileNotFoundException

    上传文件时 使用MultipartFile transferTo 将文件保存到本地路径 报错 java io IOException java io FileNotFoundException C Users XXXXX AppData L
  • vue单文件组件1(webpack打包)

    一 vue单文件组件开发流程 webpack打包 1 源文件目录结构 2 package json 3 webpack config js HTML Webpack Plugin依据html模板生成一个自动引用你打包后的文件 js或css
  • 【数据结构(C语言描述)】环形队列

    目录 一 基础知识 二 数组实现环队 2 1 初始化 2 2 判断环队是否为空 2 3 判断环队是否为满 2 4 入队 2 5 出队 2 6 取队头元素 2 7 取队尾元素 2 8 销毁环队 三 链表实现环队 3 1 初始化 3 2 判断环
  • STM32学习心得三十二:CAN通信基础知识、原理、配置及实验

    记录一下 方便以后翻阅 主要内容 1 CAN通信基础知识 2 STM32 CAN控制器简介 3 相关实验代码解读 参考资料 STM32中文参考手册 V10 第22章 控制器局域网 bxCAN 实验功能 CAN实验需要两个开发板 系统启动后
  • ctfshow-萌新-web1( 利用intval函数的特性获取敏感数据)

    ctf show 萌新模块的web1关 这一关考察的是intval 函数转换字符串时的特性以及SQL的拼接绕过 这一关直接就给了源码 并提示我们 id 1000 时 就是flag 先分析一下源码 首先是 intval 函数将参数id转换为数
  • PostgreSQL学习研究笔记(一)

    何为PostgreSQL PostgreSQL 是以加州大学伯克利分校计算机系开发的 postgres 版本 4 2 为基础的对象关系型数据库管理系统 PostgreSQL是最初的伯克利代码的开源继承者 任何人都可以以任何目的免费使用 修改
  • T-Kernel Error Code

    参考 tk errno h define E OK 0 Completed successfully define E SYS ERCD 5 0 System error define E NOCOP ERCD 6 0 Coprocesso
  • linux—通配符详解及总结

    本博客主要详解关于linux中常使用的通配符的知识点 主要分为三个步骤 通配符 和 的详细解释 举例截图说明 个人的总结理解 一 通配符 和 的详细解释 ps 因为通配符 中可添加很多变量 所以这里我会简单举出几个例子来说明 其他情况请类比
  • R 和 Rstudio 在线更新

    R 在线更新 最近安装 R 包的时候老是会遇到有些包不适应老版本 无奈还是更新了新的版本 卸载重装就太麻烦了 而且以前的包还需要重新加载 在线更新是最好的方法 可以直接在 Rstudio 中直接更新 直接运行以下命令就行 install p
  • Python还能这样学?独一档的学习路线与方法!两个月就能彻底掌握

    为什么要选择学习Python 我大学本专业当时学的是过时很久的工程物流管理 经常跟学长学姐们聊到他们的就业情况 然后自己也对未来的就业之路产生了很大的怀疑 后面经过一些了解 以及学长学姐的介绍 知道了Python 后面深入的了解了后 我果断
  • 基于Protege的知识建模实战

    一 Protege简介 用途和特点 1 Protege简介 Protege是斯坦福大学医学院生物信息研究中心基于Java开发的本体编辑和本体开发工具 也是基于知识的编辑器 属于开放源代码软件 这个软件主要用于语义网中本体的构建 是语义网中本
  • 华为OD机试真题B卷 Java 实现【停车场车辆统计】,附详细解题思路

    一 题目描述 特定大小的停车场 数组cars 表示 其中1表示有车 0表示没车 车辆大小不一 小车占一个车位 长度1 货车占两个车位 长度2 卡车占三个车位 长度3 统计停车场最少可以停多少辆车 返回具体的数目 二 输入描述 整型字符串数组
  • DHCP DNS 综合案例分析

    1 首先我们来配置一下192 168 1 2这台机器 1 1 操作系统 windows server 2003 R2 1 2 IP 192 168 1 2 24 GW 1922 168 1 1 DNS 192 168 1 2 注意 这台机器
  • 阿里云盘内测_【邀请码】阿里云盘内测码分享

    备受瞩目的阿里云网盘已在苹果App Store上架 并更名 阿里云盘 最新版本更名为v1 0 1 8 月下旬 阿里巴巴推出了一款名为 阿里云网盘 的独立 App 该应用开发者为阿里旗下的阿里云团队 定位是为 C 端用户提供可靠安全的存储备份
  • CUBEIDE 使用指南

    cubeIDE includes 下一直有一个错误的路径 如图 不知道什么原因引入了一个错误的路径怎么也消不掉 最后发现在工程文件里 用记事本等打开 cproject文件 删掉对应路径就好了 图是已经删掉的了 2 include 路径问题
  • QT信号与槽机制

    QT开发 QT信号与槽机制 一 QT消息模型 QT封装了具体操作系统的消息机制 遵循经典的GUI消息驱动事件模型 QT定义了与操作系统消息相关的自己的概念 即信号与槽 信号signal是由操作系统产生的消息 槽slot是程序中的消息处理函数
  • Openmv,stm32串口(定时器配置)

    新手学习记录中 得先有from pyb import UART的包以及import json 初始化uart UART 3 115200 表示是在串口3处 其波特率为115200 需要看openmv的原理图 看uart3的TX和RX是哪两个