在线时间4 小时
UID255967
注册时间2007-8-13
NXP金币0
该用户从未签到
注册会员

- 积分
- 75
- 最后登录
- 1970-1-1
|
最近用这款单片机开发个小程序,发现 SPI1SR_SPTEF始终是1,不能清零,我是查询发送、接收,下面贴个代码大家帮忙看看!!
void SPI1_Init(void)
{
//uint8_t temp;
SPI1CR1=0x04;
(void)SPI1SR;
(void)SPI1DR;
/*SPPR2~SPPR0=011=3,SPR2~SPR0=010=2 ,最终波特率为 Fbus /(3+1)*(2^(2+1)),假设总线频率为32M。那么算下来SCLK=1M */
SPI1BR=0x32;
SPI1CR2=0x40; /*D7=0 D6=XFRW=1数据传输16位,=0是8位 D5=0 D4=MODFEN=0*/
/*SPIE=0 禁止中断,SPE=1 使能SPI模块,SPTIE=0 发送中断禁止,MSTR=1主机工作模式,CPOL=1 SCLK空闲为高电平,CPHA=1 时钟第二个沿采集数据,SSOE=0 片选脚不用,LSBFE=0 MSB先传*/
SPI1CR1=0x5e;
}
uint8_t SPI1_Send_Data(uint16_t Send_Data)
{
uint16_t i;
while(!(SPI1SR_SPTEF));/*等待发送队列空,开始写入新的数据*/
SPI1DR= Send_Data;
//******
//
return 0;
}
我用调试器看了,在粗体字的部分,是不能像手册说的那样清除SPI1SR_SPTEF标志,大家有遇到同样的问题吗?
|
|