本帖最后由 dreamARM 于 2016-11-2 15:51 编辑
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢
while(1)
{
step++;
MotorRun(3,step);
if(step>=65535)
step=0;
if(KEY2==0) //KEY0按下,读取字符串并显示
{
delay_ms(20);
if(KEY2==0) //KEY0按下,读取字符串并显示
{
STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)flash,SIZE);
txbuf[0]=flash/256;
txbuf[1]=flash%256;
send_char(txbuf[0]);
delay_ms(1);
send_char(txbuf[1]);
}
}
}
void USART1_IRQHandler(void)
{
//unsigned char recdata;
unsigned char res;
if(USART_GetITStatus(USART1,USART_IT_RXNE)==SET)
{
res = USART_ReceiveData(USART1);
if (res==0x01)
{
STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)step,SIZE);
rxbuf[0]=step/256;
rxbuf[1]=step%256;
send_char(rxbuf[0]);
send_char(rxbuf[1]);
}
}
}
这个程序的用法是 step 在主程序里自增, 当我发出01命令时候,可以显示并储存当前step值,以后上电开机,或是按KEY2都可以直接读出来,但是现在读出来全是00.
麻烦大家了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我咋没听懂呢。 存16位的数要除以二, 存32位的数就不用吗?
一周热门 更多>