PIC18移植fatfs文件系统

本文介绍了如何在PIC18单片机上移植FATFS文件系统,涉及SPI接口初始化、FATFS下载及配置、全局变量的使用,以及在W25Q16存储芯片上的应用。在SPI配置中,强调了模拟SPI输出的注意事项,而在文件系统操作中,提到了写入前的定位操作和潜在的读取失败问题。
摘要由CSDN通过智能技术生成

使用的主芯片是是pic8f67j94
使用的存储芯片是W25Q16;

步骤一

spi初始化

void Spi_Init(void)  
{
   
	RPINR12_13bits.SDI2R = 0x01;   //SDI2   A5
	RPOR4_5bits.RPO4R = 0x04;    //SDO2  A4
	RPOR6_7bits.RPO6R = 0x05;  //CLK2   
    
	TRISCbits.TRISC6 = 0;   //wp
	LATCbits.LATC6 = 1;

	TRISCbits.TRISC7 = 0;   //CS
	LATCbits.LATC7 = 1;
	TRISAbits.TRISA6 = 0;   //CLK   A6
	LATAbits.LATA6 = 0;  
 
	TRISAbits.TRISA4 = 0;    //DIO   SDO
	LATAbits.LATA4 = 0; 

	LATAbits.LATA5 = 0;      //important1
	ANCON1bits.ANSEL5 = 0;   //important1
	TRISAbits.TRISA5 = 1;    //DO    SDI
        
	SSP2STATbits.SMP = 0;
	SSP2STATbits.CKE = 1;   //to idle
	SSP2CON1bits.WCOL = 0;
	SSP2CON1bits.CKP = 0;
	SSP2CON1bits.SSPM = 1;
	SSP2CON1bits.SSPEN = 1;
}
  1. 在配置spi接口复用的时候要注意用的是spi1还是spi2,这里使用RPINRxx和RPORxx两个寄存器进行配置复用;
  2. 使用时注意主芯片的SDO硬件上接存储芯片的DIO,SDI硬件上接存储芯片的DO;
  3. 在spi初始化配置时一定要把SDI口的ANCON1(模拟或数字)寄存器配置为数字(不知道原因,但是去掉就无法获取正确值,代码中标注important1的地方),LATA配置为0,再配置TRISx为输入;

Spi_Send_Byte & Spi_Receive_Byte

void Spi_Send_Byte(unsigned char pdata) 
{
   
    unsigned int i = 0;
    unsigned int time_out_counter = 0;
    
    i = SSP2BUF;       		//important2
    SSP2BUF = pdata;
    i = 0;
    while(!SSP2IF);
    SSP2IF = 0;
    while(!SSP2STATbi
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值