|
请点击话题浏览大家的想法,今天获得NUCLEO的获得者为:@lispha(只要认真参与都会有机会的) 今天从#讨论帖#中挑选了几个话题(【讨论帖】希望以大的技术方向或思路为主,具体问题可发【求助帖】),参加今天活动的小伙伴,点击下方3个话题帖,并分别在对应帖子中回复说出自己的想法,从当天最优秀的回答将获得NUCLEO一块。(每周的奖励依然会有) 话题1:在单片机上运行app程序 话题2:感觉STM32F107的接U盘导出数据比较难用 话题3:讨论一下STM32编码器接口 ![]() |
微信公众号
手机版
主要思想
主程序具备IAP功能,能将访问到的BIN文件烧写到SRAM并运行(PC指针运行到该区域);
Bin文件代码在运行完毕后,PC能恢复到主代码的PC栈中的代码继续执行主代码的程序;恢复主程序中断偏移量;
话题2:感觉STM32F107的接U盘导出数据比较难用
2的基本步骤如下:
1、USB要设置为主机模式;
2、读取U盘配置参数区信息动态识别U盘大小
3、根据CSV文件大小判断FATFS文件系统剩余空间是否足够;
4、初始化U盘中Flash(文件系统来做,底层操作可以参考实现)
5、块写文件内容
话题3:讨论一下STM32编码器接口
可不用两个定时器
stm32的每个定时器的通道1和通道2内置了正交编码器模块,可以直接使用。
....
TIM_EncoderInterfaceConfig(ENCODER_TIMER, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);//使用编码器模式3
....
TIM_ICInitStructure.TIM_ICFilter =ICx_FILTER;//选择输入比较滤波器
通过读取TIM1->CNT的值来获取正交编码值了。
希望大家分享下想法和思路,探讨下可行性
这个问题的回复已经被关闭,在此回复吧。
这个对退出按键的检查是用上升沿还是下降沿?思路上可行,建议画个流程图检测下思路。
想要这么做还是有办法的
可以把你原来的程序做成类似Bootloader的程序,会自动在SD卡等存储器上查找正确的可执行BIN文件,当找到后,把程序加载到RAM空间进行执行
这样的话,存储地SD卡上的程序在编程时需要将程序定义在RAM中,不然直接使用一般的程序会出错不能正常运行
话题2:感觉STM32F107的接U盘导出数据比较难用
话题3:讨论一下STM32编码器接口
2.http://bbs.21ic.com/icview-211765-1-1.html
3.多个定时器为编码器模式会出现有些编码器不能计数。
点评
点评
点评
点评
话题2、3都已经提出思路了。
这对单片机提出了高的要求,能够运行系统才行,看来也只有ARM类型的单片机才行.
话题2:感觉STM32F107的接U盘导出数据比较难用
没使用过,可能需要配置些文件吧.
话题3:讨论一下STM32编码器接口
可以按照标准编码器接口来编程使用.
具体的话,自己写一个引导程序,引导程序读其他的若干程序,需要运行那个程序的时候就直接跳转过去运转,需要退出的时候再跳转回引导程序,引导程序可以继续读其他科运行的程序,用户断定后,使用这个IAP.....
对于有外接SRAM或者SDRAM的,可以通过把修改分散加载文件来选择把程序加载到RAM运行