关于技术;
1,慎用看门狗,看门狗是很好用的一个功能,使用它可以增加程序在实际情况中的稳定性,但要注意一些地方:
a,看门狗一旦启动,只能重新烧写修改而不能在软件里修改,特别是在bootloader里面做看门的时候,你在App里面也有做看门狗。
b,看门狗的喂狗程序在while()语句里面要注意,例如
unsigned long RestTime=1500000; //随便设定 意思是程序太大
while(Flag)
{
RestTime--;
FeedWdg(); //喂狗
.....; //自己的程序
if( ..) break;
}
这是一个典型的设置。
2,检查好你的驱动
a,在网上down例程的时候,很多是51例程,我们在将51例程移植到stm8 stm32的时候,要注意移植GPIO的时候,推挽输出,上拉输入,开漏输出是个人比较经常用到的。其中开漏输出加上外借的上拉电阻可做双向IO。读取IO电平的时候用GPIO_ReadInputDataBits(GPIOB,GPIO_Pin_x) //我是在记事本上写的,所以大家只作为参考。
b,无线芯片的使用请在程序中设计一个能重新初始化的功能。
c,使用GPIO_ReadInput_DataBit(GPIOx,GPIO_Pin_x)和PXin(x)有时候不可以通用。本人吃过这方面的亏.
d,无线发送不出去一般都是硬件问题,硬件问题无非是短路或者断路,检查好你的芯片引脚有没有短接,检查好你的主控芯片有没有短接,相邻的电器元件有没有焊锡的时候碰到了。
f,硬件ok的情况下,大部分还是驱动问题。
3,stm8的定时器3不能做到很精准的中断。
4, 无论使用任何一款主控芯片,在使用IO口的时候都要注意不要用到特殊引脚,VDD,VSS,还有特殊IO如Jtag SWD的IO,以免导致不能下载程序
5,在中断里面不要做太多运算,特别是精确的定时。
6,多使用状态机
7,灵活利用到数组和指针。
8,在开发的时候,尽量在ok的例程上进行二次开发。(很多Option问题错的不明不白)
9,SPI,I2C 用软件实现会容易,,可能稳定性有一些问题,但是目前为止没有什么BUG.
10,少用Delay();
11,待补充
生产
1,自己要做一个生产硬件测试工具
2,样机一定要每个功能多测试几遍,首先要确保硬件没有问题,电路没有问题。小批量的生产也是几百个,如果硬件的问题对每个人的工作量都是非常大。
3,手机APP应该有测试版和实际发行版,方便测试。
4,买的料要在样机上测试ok,而不是用之前的元器件。
5,设计电路板的时候要多想想工序问题,使得工序尽量简洁。
6,弱电和强点要分开,特别是晶振之类的元器件与强电要保持足够的距离。
7,生产的时候要和生产的部门做好交接,并注明注意事项。
8,待补充
深夜发发感想,对了,在这里问大家一个问题,也希望有机会得到大家的指导。
应用场景是这样的,从机发送指令到主机请求下载歌曲,主机接到请求好发送命令+从机地址+歌曲大小到 从机 从机收到指令后开始下载,与此同时还可以播放歌曲(边下边播),与此同时为了丰富用户交互体验,所以从机可能语言提示操作者要不要现在就播放或者其他的语言提示。在Flash上面实现这个下载音乐这个过程,但是Flash也就100多k,从机从主机那里下载的速度是100k每秒,从机的播放的速度是100kb每秒,请问大家这个边下边播怎么在Flash上面实现呢。