-
同感啊,我也有这样的困惑啊!
-
额,是我没仔细看,我的问题是读写映射的SRAM地址错了,与片选脚对应
-
你写EEPROM的程序贴出来看看
对于带RWW功能的芯片
第一次写EEPROM可以直接写入,然后可以继续去干别的事情。不会影响中断响应。
接下来在写EEPROM前必须判断(是必须。。。)前一次写入是否完成,如果没有完成继续去干别的事情。等下次回来再判断一下前一次写入是否完成,只有在前一次写入已经完成的情况下,才能继续写下一次。否则,MCU一定会被HOLD住,无法响应任何中断,切记,切记。
对于不带RWW功能的芯片必须等一次写完再去干别的事情。
-
如果HALT之前正确使能过AWU,唤醒后会执行 语句3
-
看书没用,多看看示波器、万用表、电烙铁、元器件、PCB板。
-
我觉得你可以修改startup里的汇编指令,比如用ldr代替add,用对操作数没有限制的指令,我的情况和你又有点不一样,我在oemaddtab_cfg.inc里改的是
;DCD 0x9A000000, 0x30000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 4
改成 DCD 0x9A000000, 0x30000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 4,
按道理这个0x9A000000是可以作为立即数的啊,为什么也报错。
-
做什么东西?在那里?
-
或者有没什么浏览器比自带的更快些?
-
这样一来,性价比确实比51高多了
-
没明白啊,共同的变量访问最好加临界区。互斥比临界区要慢。
-
可以考虑以下的一些因素:
1、晶振是否是串口通讯的最佳频率,否则会有误码率。但不会太高,也就是千分之几。不知楼主所说的“丢码或是乱码”的比例有多高
2、关于通讯协议的问题。楼主的通讯协议本身没有校验机制,建议加上来。我在做串口通俗讯协议的时候,大概是这样的(假设收发是固定长度的):起始字节(1个字节)+时间戳(1~2个字节)+控制命令(1个字节)+控制命令中携带的数据(N个字节)+校验码(1个字节)+结束字节(1个字节)
3、接收方需要有容错机制,也就是如果判断出接收的数据有误,需要如何处理的问题。当然,往往是要求发送方重发。
4、如果串口收发是在中断中进行的,请注意不要在中断中做太多对数据处理的事情。最好仅仅做接收,当一帧的数据接收完毕后再在主循环中做处理。
5、测试环境是否是高磁场、高电场之类的。我曾经在一个有电弧焊的地方调试程序,只要电焊一启动,程序就莫名其妙出现问题。
-
不知所云
-
if(0
-
芯片是STM32F103C6T6,VDD是3.3V靠近引脚处各接一个0.1uF陶瓷电容,
VDDA是3.3V经4.7uH电感和4.7uF钽电解+0.1uF陶瓷电容,CPU芯片部分
接地未分,VSS,VSSA接在一起。
-
另外一个系统(BSP相近的)启动信息:
[HSMMC0] Power Up the HSMMC Host Controller
ERROR: Power Handler function yield to low priority thread.
[HSMMC0] Card is Removed!
HcdPdd_InitiatePowerUp
[A_HW] IOControl(IOCTL_POWER_SET) : D4 => D0
[A_HW] IOControl : Turning Codec On
Init Audio!!!
Backlight SET OK!
是不是HcdPdd_InitiatePowerUp这个地方出了问题?
-
引用 23 楼 xiaoyur347 的回复:
我用软件仿真试了下,代码没有问题,猜测是你的低电平不是真正的低电平,可能有干扰。
用示波器看看是否干扰
-
为什么要看那层的打印信息呢?难道怀疑那里面有问题?
-
学习
-
引用 1 楼 schlafenhamster 的回复:
"我们外扩了个三个flash",要3个吗,一个应该就够了,硬件有问题吧?
同问,三个?
-
谢谢9楼,问题解决了!
刚开始调CAN没两天,要向你们多多学习啊!