OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6361|回复: 7

这个代码没有实现预定功能,大家指点我一下

[复制链接]

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
发表于 2021-6-8 15:39:19 | 显示全部楼层 |阅读模式
30金钱
这个代码没有实现预定功能,大家指点我一下其中PWM_control(10)是控制一组灯亮度的函数,运行后,灯可以亮,LED1也是闪烁,但是掉电后,再上电,就没有反应了,证明数组存储失败。如何解决这一问题呢?
  1. int main(void)
  2. {               

  3.         u8 len;
  4. int t,aaa;         
  5.         delay_init();
  6.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  7.         LED_Init();

  8. STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)str,SIZE);
  9.          
  10.                  while(1)
  11.         {
  12.                         if((0x16==USART_RX_BUF[0])&&(0x09==USART_RX_BUF[1])&&0x01==USART_RX_BUF[2]&&0xB5==USART_RX_BUF[3]&&0xAA==USART_RX_BUF[4]&&0x11==USART_RX_BUF[5])
  13.                         {
  14.                          PWM_control(10);
  15.                         str=10;
  16.                                 STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)str,SIZE);
  17.                         }



  18.                
  19.                 if(str==10)
  20.                 {PWM_control(str);
  21.                                 LED1=0;
  22.                                 delay_ms(200);
  23.                                 LED1=1;
  24.                                 delay_ms(200);
  25.                         }
  26.                 }
  27.          
  28. }
复制代码


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

57

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1092
金钱
1092
注册时间
2019-9-3
在线时间
155 小时
发表于 2021-6-8 15:47:52 | 显示全部楼层
回复

使用道具 举报

10

主题

778

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6741
金钱
6741
注册时间
2017-4-12
在线时间
1258 小时
发表于 2021-6-8 15:48:23 | 显示全部楼层
str是什么,SIZE是多少,写之前有没有先判断擦除再写
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2021-6-8 15:48:53 | 显示全部楼层
HELLOWO 发表于 2021-6-8 15:47
看样子是没写进去flash

是的,没写进去
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2021-6-8 15:49:27 | 显示全部楼层
245925587 发表于 2021-6-8 15:48
str是什么,SIZE是多少,写之前有没有先判断擦除再写
  1. const u8 TEXT_Buffer[]={"STM32F103 FLASH TEST"};
  2. #define SIZE sizeof(TEXT_Buffer)                //êy×é3¤¶è
  3. #define FLASH_SAVE_ADDR  0X08000700       
  4. int str;
复制代码
回复

使用道具 举报

3

主题

808

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3878
金钱
3878
注册时间
2017-3-7
在线时间
1692 小时
发表于 2021-6-8 19:11:13 | 显示全部楼层
可以写个程序验证有没有写进去啊
回复

使用道具 举报

12

主题

3389

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8643
金钱
8643
注册时间
2020-5-11
在线时间
4098 小时
发表于 2021-6-9 10:23:44 | 显示全部楼层
别整这么复杂。
验证是否写入,很简单:
从flash读取值;
将值发送出来看;
写入一个特定值;
对了,写的时候看一下是否需要解锁、擦除。
专治疑难杂症
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2021-6-9 14:09:55 | 显示全部楼层
LcwSwust 发表于 2021-6-9 10:23
别整这么复杂。
验证是否写入,很简单:
从flash读取值;

不太懂啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-22 21:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表