RC522读写程序代码分享

#include stm32f10x.h #include stm32f10x_spi.h #include stm32f10x_gpio.h #include stm32f10x_rcc.h #include delay.h #include mfrc522.h #include stdio.h #define spi_ce_low() gpio_resetbits(gpioa,gpio_pin_4) #define spi_ce_high() gpio_setbits(gpioa,gpio_pin_4) void spi1_init(void) { rcc_apb2periphclockcmd(rcc_apb2periph_gpioa, enable); rcc_apb2periphclockcmd(rcc_apb2periph_spi1, enable); gpio_inittypedef gpio_initstructure; gpio_initstructure.gpio_pin = gpio_pin_5 | gpio_pin_6 | gpio_pin_7; gpio_initstructure.gpio_mode = gpio_mode_af_pp; gpio_initstructure.gpio_speed = gpio_speed_50mhz; gpio_init(gpioa, &gpio_initstructure); gpio_initstructure.gpio_pin = gpio_pin_4; gpio_initstructure.gpio_mode = gpio_mode_out_pp; gpio_initstructure.gpio_speed = gpio_speed_50mhz; gpio_init(gpioa, &gpio_initstructure); spi_inittypedef spi_initstructure; spi_initstructure.spi_direction = spi_direction_2lines_fullduplex; spi_initstructure.spi_mode = spi_mode_master; spi_initstructure.spi_datasize = spi_datasize_8b; spi_initstructure.spi_cpol = spi_cpol_high; spi_initstructure.spi_cpha = spi_cpha_2edge; spi_initstructure.spi_nss = spi_nss_soft; spi_initstructure.spi_baudrateprescaler = spi_baudrateprescaler_2; spi_initstructure.spi_firstbit = spi_firstbit_msb; spi_initstructure.spi_crcpolynomial = 7; spi_init(spi1, &spi_initstructure); spi_cmd(spi1, enable); } uint8_t spi1_sendbyte(uint8_t byte) { while(spi_i2s_getflagstatus(spi1, spi_i2s_flag_txe) == reset); spi_i2s_senddata(spi1, byte); while(spi_i2s_getflagstatus(spi1, spi_i2s_flag_rxne) == reset); return spi_i2s_receivedata(spi1); } void mfrc522_reset(void) { spi_ce_low(); spi1_sendbyte(0x1b); spi_ce_high(); } uint8_t mfrc522_readregister(uint8_t addr) { spi_ce_low(); uint8_t data; spi1_sendbyte(0x80 | addr); data = spi1_sendbyte(0x00); spi_ce_high(); return data; } void mfrc522_writeregister(uint8_t addr, uint8_t val) { spi_ce_low(); spi1_sendbyte(0x7f & addr); spi1_sendbyte(val); spi_ce_high(); } void mfrc522_readregisters(uint8_t addr, uint8_t count, uint8_t *values) { spi_ce_low(); spi1_sendbyte(0x80 | addr); for(uint8_t i=0;i
聊聊布隆过滤器
微信7.0.12内测版发布 新增小程序和小游戏的启动耗时优化
fpga按键控制数码管显示
ITO薄膜湿法刻蚀研究
什么是边缘计算网关以及什么是边缘计算?
RC522读写程序代码分享
滴滴与北汽集团联合推出新一代L4级自动驾驶车
飞腾与成都芯谷产业园合作助力西南区域的产业升级快速深入推进
构建一个遥控Arduino Air-Boat的教程
扫地机直流无刷电机有哪些核心技术?
使用于BMS电池管理系统中的电源模块
AI+安防打造智能安防的发展新格局
金升阳推出第三代驱动电源QA-R3/QA_C-R3系列产品
Switch模拟器更新已大幅提升性能
镀锌板有哪些种类
数字资产交易所开发币币交易网站开发
开源合规标准实践-“心寄源”法律沙龙(2023第六期 | 总第十一期)成功召开
基于Matlab的IIR数字滤波器设计
拆解探索“iPad”外壳上没有螺丝
新的变步长LMS算法及DSP设计