phy6222 IIC从机配置

news/2025/1/13 5:53:58/

phy6222 IIC从机配置

一、IIC从机初始化配置

void user_iic_slave_init(void)
{hal_gpio_pin_init(P33, IE);hal_gpio_pin_init(P34, IE);hal_gpio_pull_set(P33, STRONG_PULL_UP);hal_gpio_pull_set(P34, STRONG_PULL_UP);uint8_t op_ret = 0;I2C_Slave_Parameter iic_slave_cfg;iic_slave_cfg.id = 0;iic_slave_cfg.workmode = Slave;iic_slave_cfg.AddressMode = I2C_ADDR_7bit;iic_slave_cfg.RX_FIFO_Len = 3;iic_slave_cfg.Tx_FIFO_Len = 3;iic_slave_cfg.SDA_PIN = P33;iic_slave_cfg.SCL_PIN = P34;iic_slave_cfg.Slave_Address = BLE_LOCK_IIC_ADDRESS;iic_slave_cfg.IRQ_Source = I2C_MASK_RD_REQ | I2C_MASK_RX_FULL; //(I2C_MASK_TX_ABRT | I2C_MASK_RD_REQ | I2C_MASK_RX_DONE | I2C_MASK_RX_FULL); //iic_slave_cfg.evt_handler = __iic_slave_evt;op_ret = Hal_I2C_Slave_Init(&iic_slave_cfg, &iic_id);if (0 != op_ret) {LOG("iic slave init false!");return;}// LOG("iic slave init sucess!");// Hal_I2c_Slave_Open(iic_id);
}

二、IIC中断处理函数

static void __iic_slave_evt(I2C_Evt_t *pev)
{// LOG("type:%d, len:%d\r\n", pev->type, pev->len);// Hal_I2C_Slave_CLR_IRQs(iic_id, pev->type);for (uint8_t i = 0; i < 16; i++){if (pev->type& (0x0001 << i)) {Hal_I2C_Slave_CLR_IRQs(iic_id, 0x0001 << i);if (5 == i) {Hal_I2C_Slave_WriteTX_FIFO(iic_id, &test_data, 1);// LOG("send test_data:%d\r\n", test_data);// Hal_I2c_Slave_Open(iic_id);} else if (2 == i) {Hal_I2C_Slave_ReadRX_FIFO(iic_id, iic_data, 1);if (iic_data[0] == 0xaa) {Hal_I2C_Slave_Deinit(&iic_id);user_iic_slave_init();}// LOG("iic_data:%d\r\n", iic_data[0]);}}// LOG("data[%d]:%d", i, pev->data[i]);}
}

PS:当IIC中断信号为I2C_MASK_RX_FULL,需要使用iic从机数据获取的函数(Hal_I2C_Slave_ReadRX_FIFO)来清除中断信号,使用iic中断清除函数(Hal_I2C_Slave_CLR_IRQs)无法清除改中断信号

三、中断向量表需要添加IIC中断入口

在jump_table.c文件的jump_table_base[256]中断数组中添加中断入口函数
在这里插入图片描述


http://www.ppmy.cn/news/724225.html

相关文章

蓝牙PHY6222添加OTA升级功能

主要步骤&#xff1a; 1&#xff1a;代码添加 ota_app_service 2&#xff1a;keil软件添加ota_app代码 3&#xff1a;烧录软件添加ota设置 4&#xff1a;手机ota_app升级准备&#xff1a; 奉加微电子官网下载6222的代码SDK&#xff0c;V3.0以上 下载官网的PhyPlusKit串口烧录工…

蓝牙BLE芯片PHY6222之I2C主从通信

蓝牙BLE芯片PHY6222之I2C主从通信 开发环境I2C主机I2C从机注意事项 开发环境 1.PHY6222开发板 2.SDK版本以及路径&#xff1a;SDK\release_bbb_sdk-PHY62XX_SDK_3.0.9\example\peripheral\gpio 3.硬件连接 SDA  GPIO_P33----------GPIO_33 CLK  GPIO_P34----------GPIO_34…

蓝牙BLE芯片PHY6222之OTA

蓝牙BLE芯片PHY6222之OTA 什么是OTA将OTA驱动移植到应用代码一、SLB移植用PhyPlusKit烧录支持SLB的文件支持SLB的OTA bin文件的制作使用APP进行SLB升级二、Single Bank 移植用PhyPlusKit烧录支持Single Bank的OTA文件支持Single Bank OTA 的hex16文件制作使用APP进行Single Ban…

如何修改Jupyter Notebook的默认目录和默认浏览器

一、修改默认目录 Jupyter Notebook的文件默认保存目录是C:\Users\Administrator&#xff0c;默认目录可在黑窗口中查看&#xff0c;如下图所示&#xff1a; 为了方便文档的管理&#xff0c;可将默认目录修改成自己想保存的地方。修改方法如下&#xff1a; 1、找到config文件 …

前端适配笔记本缩放125%,150%导致页面错乱问题

由于前端在开发时使用的都是标准ui设计图&#xff0c;基本都是按照所以1920*1080&#xff0c; 而小屏幕笔记本由于分辨率高&#xff0c;所以导致的显示元素变小&#xff0c;因此很多笔记本的默认显示都是放大125%或者150%。 如果页面比较简单就让多余的空白单边扩展&#xff0c…

台式机计算机型号怎么查,电脑配置怎么查询?笔记本台式机查询电脑配置的四种方法...

电脑配置怎么查询&#xff1f;虽然说现在网络非常的发达&#xff0c;但是并不是每个人都是电脑专家&#xff0c;还有一些不怎么接触电脑的小白用户&#xff0c;对于电脑配置怎么查询并不了解。今天智能手机网就为大家带来了电脑配置查询的具体方法&#xff0c;一起来瞧一瞧吧。…

查看电脑配置信息

在开始菜单的 “运行” 输入 dxdiag 后&#xff0c;点击确定&#xff08;或者快捷键winR&#xff09; 进入下面这个窗口&#xff0c;加载完后&#xff0c;点击 “保存所有信息”&#xff0c;在DxDiag.txt里可以查看本电脑的品牌&#xff08;System Manufacturer&#xff09;、型…

cmd命令怎么查看电脑配置?

cmd命令是一种非常实用的命令&#xff0c;可以帮助用户完成一些操作。cmd命令还能查看电脑配置&#xff0c;要怎么操作呢&#xff1f;今天小编为大家带来的就是cmd命令查看电脑配置的操作方法。 如何用cmd命令查看电脑配置&#xff1f; 1、首先按下快捷键“winr”打开运行。 2、…