51单片机 模拟4线SPI读写问题
下面分别是模拟SPI的读一字节和写一字节的子程序。单片机用的是STC1T系列.。程序运行后毫无反应。不知这两段读写小程序有无致命错误。请教高人指点一下:)sbitMOSI...
下面分别是 模拟SPI的 读一字节 和写一字节的子程序。
单片机用的是STC1T系列.。程序运行后毫无反应。不知这两段读写小程序有无致命错误。请教高人指点一下:)
sbit MOSI = P4^2;
sbit MISO = P4^1;sbit SCLK = P4^3;sbit CSS = P4^4;
void SPI_WRITE_1BYTE(uchar UCDA)/////////////////////SPI写一字节{ uchar i; MISO=1; CSS=0;_nop_();for(i=0;i<8;i++){SCLK=1;_nop_();MOSI=(UCDA&0x80);UCDA=(UCDA<<1);SCLK=0;_nop_();}
CSS=1;
}
uchar SPI_READ_1BYTE(void)//////////////////////////SPI读一字节{ uchar i,kk;
CSS=0;for(i=0;i<8;i++){
SCLK=1;_nop_();kk=kk<<1;SCLK=0;_nop_();if(MOSI==1){
kk=kk+1;}_nop_();}
CSS=1;return(kk);} 展开
单片机用的是STC1T系列.。程序运行后毫无反应。不知这两段读写小程序有无致命错误。请教高人指点一下:)
sbit MOSI = P4^2;
sbit MISO = P4^1;sbit SCLK = P4^3;sbit CSS = P4^4;
void SPI_WRITE_1BYTE(uchar UCDA)/////////////////////SPI写一字节{ uchar i; MISO=1; CSS=0;_nop_();for(i=0;i<8;i++){SCLK=1;_nop_();MOSI=(UCDA&0x80);UCDA=(UCDA<<1);SCLK=0;_nop_();}
CSS=1;
}
uchar SPI_READ_1BYTE(void)//////////////////////////SPI读一字节{ uchar i,kk;
CSS=0;for(i=0;i<8;i++){
SCLK=1;_nop_();kk=kk<<1;SCLK=0;_nop_();if(MOSI==1){
kk=kk+1;}_nop_();}
CSS=1;return(kk);} 展开
3个回答
展开全部
你读写的东西是只传一个字节就可以了吗?若是命令或寄存器地址一般都是不只两个字节,CS应该持续为低,知道写完命令或寄存器地址。不知道是不是这个问题。还有这read函数我是没看懂啊,连个MISO都没有啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32是ARM Cortex内核单片机和微处理器市场和技术方面的佼佼者,目前提供16大产品线 (F0, G0, F1, F2, F3, G4, F4, F7, H7, MP1, L0, L1, L4, L4+,L5, WB),超过100...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
上升沿传数据 那么
clk先置零
写数据
clk置一
clk先置零
写数据
clk置一
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
海报以客户你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询