一、移植stm32f103 usb-cdc例程到Eclipse IDE(GCC编译环境)的方法
1.新建stm32f103工程模板,将需要移植的源文件、头文件复制到工程内的文件夹里,包含cmis层和固件库的文件。
2.添加USB库路径 "../system/inc/stm32_usb_fs_device_driver"
3.添加宏定义 USE_STM3210B_EVAL USB_Dual_RS485
4.双击GDB SEGGER J-LINK Debug,Debugger\Device name 编辑框填入stm32f103c8即可开始调试
二、导入GCC-ARM例程的方法
1.导入已有的工程项目,3.6.1库版的usb-cdc例程已上传
2.双击GDB SEGGER J-LINK Debug,Debugger\Device name 编辑框填入stm32f103c8即可开始调试
三、关闭GCC警告的方法:
例如USART2_IRQHandler中断函数,GCC-ARM编译器可能会出现一些警告.
关闭警告的方法1:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wmissing-prototypes"
void USART2_IRQHandler(void)
{
}
#pragma GCC diagnostic pop
关闭警告的方法2:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
static USART2_IRQHandler(void)
{
}
#pragma GCC diagnostic pop
对于中断函数,一般推荐使用第1种方法。
四、GCC-ARM例程工程包说明
1.该工程仅适用于USB-Dual-RS485硬件,主控芯片为STM32F103C8的其它开发板,源代码稍作修改也可以使用。
不适用于主控芯片stm32f103vc/stm32f103ze的开发板,因为工程相关的LD文件和设置不同。
2.此工程实现了单路USB-CDC,驱动支持win7/win8/win8.1。
串口绑定USART3,中断方式工作,其中PB9是RS485换向控制脚,该工程实际上是USB-RS485实现的一个软件包。
经测试TTL发送小于64字节、等于64字节、大于64字节都可以通过。
根据数据包在中断中连接发送的原理,在一个完整的数据包尚未发送完毕,PB9不会控制RS485转为接收状态,
这和某些公司售价为800元的USB-RS485不同,不会把主机的数据包拆分为多个小数据包发送。
3.usb-cdc-gcc例程工程源代码包下载地址
【文件下载】
usb-cdc-gcc.281.rar
(249.42 KB, 下载次数: 32)
,该例程仅适用于STM32F103C8硬件。
4.USB-CDC驱动下载地址
stm32f103c8是意法半导体的一个芯片,其中USB通讯模块是收购其它公司获得的,CDC底层源代码经过意法半导体
工程师数年的改进,可以投入商用。上位机的USB驱动程序通过微软的数字签名认证。
在win10环境下,单路cdc或多路cdc不需要按照驱动程序就可以工作,linux环境下,单路cdc能自动安装驱动程序,
linux下目前没有多路cdc的驱动,这也是本工程包不作成多路的其中一个原因。
stm32_vcp_v1.4.rar
(2.05 MB, 下载次数: 13)
|