rtthread stm32h743的使用(十)i2c设备使用

news2024/11/18 3:34:00

我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。我们使用一块stm32h743及fpga的核心板完成相关实验,核心板如图:在这里插入图片描述
在这里插入图片描述
1.建立新工程,选择相应的芯片型号及debug引脚及调试器
在这里插入图片描述
2.打开cubemux,设置外部时钟及串口外设,其余设置参照前面rtthread stm32h743的使用(一)新工程建立,使能两个串口,串口1为调试串口,串口2为我们的测试串口。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.设置i2c引脚及参数 根据原理图scl为ph7,sda为ph8,如下图:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
4.设置系统时钟,如下图:
在这里插入图片描述
在这里插入图片描述
5生成工程,如下图:在这里插入图片描述
在这里插入图片描述
6.生成工程后一定要关闭cubemux,如果点击close软件没有关闭,就在右上角x掉,直接关闭,否则生成的工程会有异常:
在这里插入图片描述
在这里插入图片描述
7.编译工程,如下图,将大写的改为小写,再编译就没有报错了:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
8.打开工程后在工程drive文件夹下的board.h中添加要使用的串口设备和i2c设备如图,我们使用的串口1,和i2c3 如图:
在这里插入图片描述
9.添加驱动框架和软件包:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
9.保存编译下,可以看到软件包已经添加到工程中了:
在这里插入图片描述
在这里插入图片描述
10.编译无误,在软件包的.h文件中更改芯片型号:
在这里插入图片描述
11.添加测试文件,代码如下:
在这里插入图片描述
#include <hw_at24cxx.h>
#include “at24cxx.h”

#define AT24CXX_ADDR (0xA0 >> 1) //A0 A1 A2 connect GND
#define AT24Cxx_I2C_NAME “i2c3” /* PWM设备名称 */

struct at24cxx_device *at24cxx_dev;

void hw_at24cxx_init(void)
{
at24cxx_dev = at24cxx_init(AT24Cxx_I2C_NAME,AT24CXX_ADDR);
}
#define buff_size 250
void hw_at24cxx_prog(void)
{
rt_uint8_t j;
rt_uint8_t buff[buff_size]={0};
for(j=0;j<buff_size;j++)
{
buff[j]=5;
}
at24cxx_write(at24cxx_dev,0x00,buff,buff_size);
for(j=0;j<buff_size;j++)
{
buff[j]=0;
}
rt_thread_mdelay(10);
at24cxx_read(at24cxx_dev,0x00,buff,buff_size);
for(j=0;j<buff_size;j++)
{
rt_kprintf(“buff[%d] = %d\n”,j,buff[j]);
}
}

/*

  • Copyright © 2006-2021, RT-Thread Development Team
  • SPDX-License-Identifier: Apache-2.0
  • Change Logs:
  • Date Author Notes
  • 2024-06-17 58381 the first version
    */
    #ifndef APPLICATIONS_HW_AT24CXX_H_
    #define APPLICATIONS_HW_AT24CXX_H_

extern void hw_at24cxx_init(void);
extern void hw_at24cxx_prog(void);

#endif /* APPLICATIONS_HW_AT24CXX_H_ */

12.在主函数中添加初始化和调用函数,代码如下:
#include <rtthread.h>
#include “hw_at24cxx.h”
#define DBG_TAG “main”
#define DBG_LVL DBG_LOG
#include <rtdbg.h>

int main(void)
{
int count = 1;
hw_at24cxx_init();
while (count++)
{
LOG_D(“Hello RT-Thread-test-eeprom!”);
rt_thread_mdelay(1000);
hw_at24cxx_prog();
}

return RT_EOK;

}
13.打开串口助手,查看打印内容:
在这里插入图片描述
13.打开串口助手,更改写入eeprom中的值,再查看打印内容:
在这里插入图片描述
在这里插入图片描述
可以看到写入的值与读出的值一致,eeprom的读写就可以了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1864250.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java文件操作小项目-带GUI界面统计文件夹内文件类型及大小

引言 在Java编程中&#xff0c;文件操作是一项基本且常见的任务。我们经常需要处理文件和文件夹&#xff0c;例如读取、写入、删除文件&#xff0c;或者遍历文件夹中的文件等。本文将介绍如何使用Java的File类和相关API来统计一个文件夹中不同类型文件的数量和大小。 准备工作…

气膜体育馆的使用年限有多少—轻空间

气膜体育馆作为一种新兴的建筑形式&#xff0c;因其独特的结构和功能而备受青睐。它不仅在建设速度、成本控制和环保方面具有显著优势&#xff0c;还在使用年限上展现出良好的性能。轻空间将探讨气膜体育馆的使用年限及其影响因素。 气膜体育馆的基本结构 气膜体育馆主要由膜材…

我教你做不花钱的SEO

我教你做不花钱的SEO **SEO&#xff08;搜索引擎优化&#xff09;投入不一定有产出**不花钱的SEO标题标签元描述标题标签URL结构图片优化内容优化内部链接外部链接结构化数据页面速度优化移动友好性社交媒体整合 结论 SEO&#xff08;搜索引擎优化&#xff09;投入不一定有产出…

Sql审核平台Archery的搭建和简单配置

Sql审核平台Archery的搭建和简单配置 Archery是一个开源的Web应用&#xff0c;基于Python开发&#xff0c;利用Flask作为后端框架&#xff0c;前端采用Vue.js&#xff0c;构建了一个现代化的数据操作界面。提供了SQL审核、数据查询、报表生成等功能&#xff0c;同时支持多种数据…

使用 frida hook Android app

Frida&#xff1a; 一种基于动态插装&#xff08;dynamic instrumentation&#xff09;技术的工具包&#xff0c;它主要是为测试人员、开发人员和逆向工程爱好者创建&#xff0c;在目标程序运行时&#xff0c;允许用户将 JavaScript代码注入其中&#xff0c;实现动态修改和调试…

if action和Switch之间该怎么选择?

1. Switch 2. If及If Action Subsystem 3.结论 元素很多&#xff0c;用switch 元素少&#xff0c;用if或switch 如果...很多&#xff0c;用if

Go语言之集合类型

个人网站&#xff1a; http://hardyfish.top/ 免费书籍分享&#xff1a; 资料链接&#xff1a;https://url81.ctfile.com/d/57345181-61545511-81795b?p3899 访问密码&#xff1a;3899 免费专栏分享&#xff1a; 资料链接&#xff1a;https://url81.ctfile.com/d/57345181-6…

姚期智、张亚勤、薛澜、Stuart Russell、Max Tegmark,DeepMind研究员等共话全球AI治理丨大会回顾...

为什么AI安全已迫在眉睫&#xff1f;如何构建全球范围内的合作&#xff1f;民众该如何参与到其中&#xff1f;未来的AI系统将是什么样的&#xff1f; 2024年6月15日&#xff0c;智源大会第二天&#xff0c;多位AI安全领域专家进行圆桌讨论&#xff0c;连接中国北京和美国加利福…

从概念到现实:数字孪生技术在智慧充电站的实践

在电动汽车蓬勃发展的今天&#xff0c;充电基础设施的智能化升级成为了推动新能源汽车产业跃进的关键一环。数字孪生技术&#xff0c;作为智能制造和工业4.0的核心&#xff0c;正在逐渐渗透到智慧充电站的每一个角落——从提高能源效率到增强用户体验&#xff0c;为智慧充电站的…

DockerDesktop中mysql容器无法使用Exec窗口解决

解决前 需要登陆&#xff1a; 登陆后需要升级才能启动调试模式 需要订阅才能使用 解决后&#xff1a; 正常使用 解决方法&#xff1a; 不要在DockerDesktop中启动mysql容器&#xff0c;使用命令行启动 启动命令 docker run --name mysql_docker -e MYSQL_ROOT_PASSWORD12345…

MySQL递归查询(with recursive)

背景 日常开发中经常会有那种 阶梯式 数据&#xff0c;比如做地图、菜单&#xff0c;裂变给上级、上上级分红等等这样的需求的时候 你需要找个一个对象的 上级&#xff0c;上上级&#xff0c;上上上级 建了一张很容易理解阶级的表&#xff0c;一目了然 很多时候我们的需求就是…

仓库管理系统09--修改用户密码

1、添加窗体 2、窗体布局控件 UI设计这块还是传统的表格布局&#xff0c;采用5行2列 3、创建viewmodel 4、前台UI绑定viewmodel 这里要注意属性绑定和命令绑定及命令绑定时传递的参数 <Window x:Class"West.StoreMgr.Windows.EditPasswordWindow"xmlns"http…

缓存问题二、缓存雪崩

缓存雪崩 缓存雪崩&#xff1a;是指在同一时段大量的缓存key同时失效或者Redis服务宕机&#xff0c;导致大量请求到达数据库&#xff0c;带来巨大压力。 缓存雪崩的解决方案&#xff1a; 给不同的Key的TTL添加随机值利用Redis集群提高服务的可用性给缓存业务添加降级限流策略…

转行AI产品经理,这些“门槛”你得先迈过!

前言 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;AI产品经理这一岗位逐渐崭露头角&#xff0c;成为许多追求创新和挑战的职业人士的新选择。但转行并非易事&#xff0c;特别是进入到一个全新的领域。在决定踏上AI产品经理这条道路之前&#xff0c;以下…

HarmonyOS角落里的知识:“开发应用沉浸式效果”

概述 典型应用全屏窗口UI元素包括状态栏、应用界面和底部导航条。开发应用沉浸式效果主要指通过调整状态栏、应用界面和导航条的显示效果来减少状态栏导航条等系统界面的突兀感&#xff0c;从而使用户获得最佳的UI体验。 图1 界面元素示意图 开发应用沉浸式效果主要要考虑如下…

win7 的 vmware tools 安装失败

没有安装vmware tools的系统屏幕显示异常。桌面是比较小的图像&#xff0c;四周是黑边在 vmware 软件里 方法1&#xff0c;下补丁 https://www.catalog.update.microsoft.com/Search.aspx?qkb4474419 方法2&#xff0c;使用老版vm tools http://softwareupdate.vmware.com/c…

全视通智慧医院解决方案助力“以旧换新”的医疗升级!

全视通表示&#xff0c;以旧换新的本质更多的是医院综合性能的提升&#xff0c;应该通过从顶层设计规划&#xff0c;全面提升医院的整体运营水平&#xff0c;改善患者及医护对医院的满意度、提升医护整体效率&#xff0c;同时实现医院复合手术室、实验室、ICU等医院重点空间的需…

第十一次作业

1.过滤器用的Interceptor因为idea中自带的拦截器 ReaderInterceptor import request from /utils/requestexport function fetchList(query) {return request({url: /vue-element-admin/article/list,method: get,params: query}) }export function fetchArticle(id) {return…

Lua博客网站支持搜索、评论、登录注册

该简易博客示例用于学习网站的基础知识与MySQL数据库。 简述&#xff1a;开源Lua网站开发服务(FastWeb)支持&#xff1a;注册、登录、文章分页、评论分页、简易权限管理和搜索功能。发帖功能支持Markdown(支持记忆功能)图示&#xff1a;

DOM遍历

DOM 遍历是指在 HTML 文档中导航和定位元素的过程。通过 DOM 遍历&#xff0c;您可以在文档中移动并查找特定的元素&#xff0c;以便对其进行操作或者检索信息。 寻找子元素 //DOM遍历 const h1 document.querySelector(h1);//寻找子元素 console.log(h1.querySelectorAll(.…