感觉这种问题直接百度就好了,都有现成的答案,哎!但是要一句一句说的话,确实三言两语说不清,也似乎没必要,只好给你现成的答案了!最重要的一点就是:不管是IAR还是MDK,编程时使用的都是STM32的固件函数库,唯一不同的是启动文件。MDK在建立STM32工程时会自动创建启动文件 STM32F10x.s,而IAR使用的启动文件是cortexm3_macro.s。此外,两者对中断向量表的管理也不一样。
如果是用cubeMX和HAL库来写的,直接在输出代码那里选择Keil就可以生成并移植了,这也是ST推cubeMX的原因。
修改启动文件,检查是否使用了中断,修改中断函数,请参考下面的文章
http://www.eepw.com.cn/article/201611/320910.htm
移植的过程,还不好再新建一个工程,重新写呢。
两个IDE的差另很大的。
应用层程序里面的内容可以直接用,库需要改一下,改用keil的库,不然有些函数会报错
如果是用HAL庫
只要直接用MDK創建專案後添加原始碼檔案和標頭檔即可
這差異不大的
然後再看看編譯有沒有問題
主要是启动文件不同。
使用库的时候,重新生成个工程,再把必要程序直接复制过去就可了