几年来,我一直在使用8位AVR MCU与学生一起构建线跟随机器人。现在,我想使用ARM Cortex-M3,因为我想添加一些更多的CPU密集型功能,例如里程表和传感器融合。
要求是:
- 8个模拟输入,
- 4个PWM输出
- 我2 C
- 2个正交编码器输入,
- 串行I / O,
- 无线自编程,无需物理访问机器人。
- 多平台工具链+ IDE(OS X,Linux,Windows)。
到目前为止,我已采取的步骤是:
我正在使用基于STM32F103C8的电路板。我相信该MCU具有我所需的一切,包括我计划在软件中实现的2 x QEI,但是这个恰好在硬件中具有,所以很棒:
- 董事会http://eud.dx.com/product/high-quality-cortex-m3-stm32-stm32f103c8t6-development-board-w-swd-interface-844380789
- 程序员http://eud.dx.com/product/st-link-v2-programmer-emulator-mini-stlink-downloader-for-stm8-stm32-mcu-development-board-844380733
我遵循此步骤来设置我的工具链+ IDE:
我发现该芯片的文档分散在许多PDF中,这些PDF是我下载的:
- STM32F103x8数据表http://www.st.com/st-web-ui/static/active/zh/resource/technical/document/datasheet/CD00161566.pdf
- 参考手册http://www.st.com/st-web-ui/static/active/en/resource/technical/document/reference_manual/CD00171190.pdf
- 我将来可能会需要一些其他文档,例如AN2606(内存启动模式),PM0075(闪存编程手册)和AN3155(串行启动加载程序协议)。
我还下载了STM32F10x标准外围设备库,但这反过来又建议我购买较新的STM32CubeF1,我相信这只是上述产品的市场重命名,因此我同时获得了两者:
- http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/LN1939/PF257890
- http://www.st.com/web/zh/catalog/tools/PF260820
最后,我还收到了Joseph Yiu撰写的“ ARM Cortex-M3权威指南”,我在等这些板到达时正在阅读。
我的问题是:
至少可以说,我对文档有点不知所措,而且我甚至不确定我是否掌握了全部内容。例如,数据表和参考手册指出该芯片具有3个能够正交编码输入的定时器。但是,我无法在上述PDF的任何地方找到控制定时器的寄存器的文档。我想念什么?
我应该使用(较旧?)标准外围设备库还是(较新?)多维数据集?有什么不同?我知道这两个库都使我免于直接操作寄存器,这是推荐的方法。我对吗?
库的文档在哪里(除了嵌入式doxygen注释之外,这些注释很好,除了我自己,我宁愿拥有可搜索的html / pdf)?
我选择Eclipse + GCC ARM + OpenOCD作为我的工具链,因为我认为这是唯一可以在3个主要OS上运行且没有代码大小或其他限制的选项。还有其他选择吗?