這是樓主寫的基于XPT2046ADC芯片的程序,keil編譯時不停報錯,樓主檢查了幾遍也沒發現問題,麻煩各位看看哪里有問題
QQ圖片20180311193525.png (9.47 KB, 下載次數: 33)
下載附件
報錯原因
2018-3-11 19:37 上傳
QQ圖片20180311193559.png (52.69 KB, 下載次數: 32)
下載附件
XPT2046時序圖
2018-3-11 19:37 上傳
QQ圖片20180311193620.png (57.82 KB, 下載次數: 32)
下載附件
2018-3-11 19:37 上傳
單片機源碼:
- #include<reg52.h>
- #include<intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
- sbit CLK=P2^0;
- sbit CS=P2^1;
- sbit DIN=P2^2;
- sbit DOUT=P2^3;
- void SPI_INIT();
- void SPI_WRITE(uchar dat1);
- uchar SPI_READ();
- uchar READ_AD(uchar cmd);
- void main()
- {
- uchar temp,z=0;
- while(1)
- {
- if(z==50)
- {
- z=0;
- temp=READ_AD(0x9C);
- }
- z++;
- }
- }
- void SPI_INIT()//初始化
- {
- CS=1;
- CLK=0;
- DIN=0;
- CS=0;
- }
- void SPI_WRITE(uchar dat1)//寫入數據
- {
- uchar i;
- SPI_INIT();
- for(i=1;i<9;i++)
- {
- dat1=dat1<<1;
- DIN=CY;
- CLK=0;
- CLK=1;
- }
- }
- uchar SPI_READ()//讀取數據
- {
- uchar i,dat;
- CLK=0;
- for(i=1;i<9;i++)
- {
- dat=dat<<1;
- CLK=1;
- CLK=0;
- dat=dat|DOUT;
- }
- return dat;
- }
- uchar READ_AD(uchar cmd)
- {
- SPI_INIT();
- uchar n,value;
- SPI_WRITE(cmd);
- for(n=6;n>1;n--);
- CLK=1;
- _nop_();
- _nop_();
- CLK=0;
- _nop_();
- _nop_();
- value=SPI_READ();
- CS=1;
- return value;
- }
復制代碼
|