#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设计