PN532 I2C模式STM32开发 附带完整例程

PN532 I2C模式STM32开发 附带完整例程

主要参考文章https://blog.csdn.net/imzhujun/article/details/94399288
目前工程实现的功能还是只有读取卡id,但是有一些github开源的lib或者工程一并打包放在了压缩包里。
需要stm32连到的外设只有ttl转usb和PN532模块,根据自己需要修改了一下接线:
SCL ---- PB6
SDA ---- PB7
RESET – PB3
IQR ---- PB4
接线如下图:
需要注意拨码开关播成I2C的编码。即0 - 1。
请添加图片描述
由于代码工程里重定义了printf,所以可以通过串口助手看到输出,最后的效果如视频所示:

NFC测试

另外对一些参考资料的说明:
目前根据自己实践来看这个的不太靠谱,很不稳定
https://github.com/zhangyuhu/STM32-PN532/tree/feature-new_nfc_uart_drive
但是这个lib写的很不错,不过由于用的是HAL库,lz由于时间精力不够没有来得及完全研究,如果需要用PN532做很多功能的话建议参考这个库。
https://github.com/pe1mew/PN532-on-STM32

代码工程,可下载查看https://download.csdn.net/download/qq_39743953/88496134

原创不易,觉得有用请点个赞吧

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用STM32微控制器的I2C总线的简单例程: ```c #include "stm32f4xx.h" #include "stm32f4xx_i2c.h" #define I2C_SCL_PIN GPIO_Pin_6 #define I2C_SDA_PIN GPIO_Pin_9 void I2C_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; I2C_InitTypeDef I2C_InitStructure; // 使能I2C和GPIO时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); // 配置I2C引脚 GPIO_InitStructure.GPIO_Pin = I2C_SCL_PIN | I2C_SDA_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOB, &GPIO_InitStructure); // 配置I2C外设 I2C_InitStructure.I2C_Mode = I2C_Mode_I2C; I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2; I2C_InitStructure.I2C_OwnAddress1 = 0x00; I2C_InitStructure.I2C_Ack = I2C_Ack_Enable; I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit; I2C_InitStructure.I2C_ClockSpeed = 100000; I2C_Init(I2C1, &I2C_InitStructure); // 使能I2C外设 I2C_Cmd(I2C1, ENABLE); } int main(void) { // 初始化I2C总线 I2C_Configuration(); while (1) { // 在这里进行I2C通信操作,例如发送和接收数据 } } ``` 这个例程配置了STM32I2C1外设,使用GPIOB的引脚6和9作为I2C的SCL和SDA引脚。在`main`函数中,你可以在循环中进行I2C的通信操作,例如发送和接收数据。 请注意,这只是一个简单的示例,实际应用中可能需要根据具体需求进行更详细的配置和操作。你可以参考STMicroelectronics提供的相关文档和示例代码来深入了解STM32I2C总线的使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值