在 STM32CubeIDE 中使用 RTOS 代理
如何为ram变量分配固定地址
ST TOF问题请教
使用Hal库的SPI读取磁边传感器导致STM32G4无法运行
为什么STM32H7的DMA第一次启动延时较长?
STM32F407 USB 发送数据 上位机接受不到
请问我的CubeMX为什么初始界面没有ai选项,进去之后也没有addnetwork?
ST Motor Control Workbench卡在如图界面,生成不了代码
SDIO 标致位 没有变
程序卡死在USB_EPStartXfer这里
微信公众号
手机版
大概率 得不到 想要的结果!
定义变量时可以不赋值,但使用前一定要赋值,否则结果就有可能达不到预期。
从楼主的代码中没有看到定义的变量尚未赋值就使用的状况。其中的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开始,但在不开优化的情况下还是异常。
调整编译器等级,编译的时候警告