STM32F4的SPI端口,如何实现多通道输入?
STM32F4标准库USB例程CDC_HID_Composite问题:第一次识别成功,后续插入电脑均识别失败
关于l9663的SPI通信问题
STM32F407 Flash 故障
STM32F407使用LAN8720A进行网口通信
USBX在F407上创建CDC不能正常使用
STM32F407 音频输入输出时 IFFT 无法正常工作
ai部署
keil有什么调试方法可以追踪链表被破坏的地方吗
无法通过 SPI 读取 TCD1304数据
微信公众号
手机版
大概率 得不到 想要的结果!
定义变量时可以不赋值,但使用前一定要赋值,否则结果就有可能达不到预期。
从楼主的代码中没有看到定义的变量尚未赋值就使用的状况。其中的void SPIWriteByte(unsigned int writedat)函数中定义的用于循环的变量i,虽然在定义时未赋值,但在循环语句for(i=0;i<32;i++)里已经赋初值为0了。
static void SPI_Delay_(unsigned int t)
{
while(t--);
}
void SPIWriteByte(unsigned int writedat)
{
unsigned char i;
for(i=0;i<32;i++)
{
LL_GPIO_ResetOutputPin(GPIOE, LL_GPIO_PIN_2);
SPI_Delay_(20);
if(writedat & 0x01)
LL_GPIO_SetOutputPin(GPIOE, LL_GPIO_PIN_4);
else
LL_GPIO_ResetOutputPin(GPIOE, LL_GPIO_PIN_4);
writedat>>=1;
LL_GPIO_SetOutputPin(GPIOE, LL_GPIO_PIN_2);
SPI_Delay_(40);
}
LL_GPIO_ResetOutputPin(GPIOE, LL_GPIO_PIN_2);
}
void load_dsp_program(const unsigned int pData[],unsigned int len)
{
unsigned int i = 0;
LL_GPIO_ResetOutputPin(GPIOE, LL_GPIO_PIN_1);
delay_us(20);
for(i=0;i<len;i++)
{
SPIWriteByte(pData[i]);
}
delay_us(50);
LL_GPIO_SetOutputPin(GPIOE, LL_GPIO_PIN_1);
}
[md]我理解的也是这样,在for循环的开始给赋值了,应该就是从0开始,但在不开优化的情况下还是异常。
调整编译器等级,编译的时候警告
[md]那很可能是编译器的优化等级太高了。