[原创] [STM32CubeMX]OS环境下安装STM32CubeMX+简单串口例程

huaiqiao   2016-6-20 05:42 楼主
好像STM32CubeMX在4.12后还是哪个版本以后就支持了OS X和Linux。想想windows的也用过,不知道其他两个系统下,这个STM32CubeMX到底感觉咋样呢?虽然实际中使用标准外设库多一些,但是这个STM32CubeMX还是需要慢慢熟悉的。 这几天朋友刚好过来,他带着mac pro,正好用他的机子来安装OS版的STM32CubeMX。同时也想看看OS下这个的界面,想一睹为快。所以就经过朋友的同意,在OS的系统下,安装STM32CubeMX,来带大家装装字母A与字母C之间的那个字母。 一、安装 1、安装首先要去ST官网下载STM32CubeMX的压缩包,并放在OS下进行解压。解压完成,文件如下: 解压.png 2、在安装os版的STM32CubeMX之前,首先还是需要像windows一样安装JAVA的虚拟环境。 JAVA虚拟环境链接 我安装的是如下红色方框中的这个版本: JAVA安装环境.png 安装的过程在这里跳过 3、安装STM32CubeMX OS版的文件。将第1步中的文件名为”SetupSTM32CubeMX-4_14_0_macos”的文件直接拖入终端。 然后就会出现如下的界面: 安装1.png stm32CubeMX安装.png 屏幕快照 2016-05-28 00.44.25.png 4、一路NEXT,直到安装完成。 屏幕快照 2016-05-28 00.44.39.png 屏幕快照 2016-05-28 00.44.50.png 屏幕快照 2016-05-28 00.45.00.png 屏幕快照 2016-05-28 00.45.40.png 5、安装Libraryies,根据不同的系列,安装自己想要的Libraryies。这个的安装跟windows的一致(可以在线下载安装,也可以 导入离线的已经下载好的安装包) 安装 Libraryies.png 二、使用 计划还是使用OS版本的STM32CubeMX来体验一下。手里有个Nucelo--32(STM32F042K6)的板子,用它来实现一个简单的uart1例程。 1、查看datasheet,看uart1对应哪个GPIO。查看后,发现是PA9(TX),PA10(RX) datasheet1 串口1.png 2、查看原理图中PA9和PA10 是否有接其他外设,以免影响我这个uart1的例程。发现PA9和PA10直接由插针引出。 串口1原理图.png 3、利用STM32CubeMX新建工程: 新建工程1.png 新建工程2.png 因为这个板子没有外部晶振,所以使用HSI。使用UART1(PA9和PA10) 新建工程3.png 使用HSI经过倍频至48Mhz,从而产生48Mhz的系统时钟。 新建工程4.png UART1的配置: 新建工程5.png GPIO的设置(不用再去设) 新建工程7.png 因为不知道OS系统上有什么IDE(至少没有os的iar和keil吧)可以编译这个STM32CubeMX产生的工程。所以先生成MDK5的工程。将工程文件目录拷贝到windows下,利用keil5进行处理。 新建工程8.png 4、在MDK5中添加相应的用户代码,并编译下载到板子。 a、添加打印相关的代码:
  1. #pragma import(__use_no_semihosting)
  2. struct __FILE
  3. {
  4. int handle;
  5. /* Whatever you require here. If the only file you are using is */
  6. /* standard output using printf() for debugging, no file handling */
  7. /* is required. */
  8. };
  9. /* FILE is typedef’ d in stdio.h. */
  10. FILE __stdout;
  11. void _sys_exit(int x)
  12. {
  13. x = x;
  14. }
  15. int fputc(int ch, FILE *f)
  16. {
  17. while((USART1->ISR&0X40)==0);
  18. USART1->TDR = (uint8_t) ch;
  19. return ch;
  20. }
b、在main函数的while循环中,添加用户代码(打印系统时钟,打印一串字符)
  1. while (1)
  2. {
  3. uint32_t SysClk;
  4. /* USER CODE END WHILE */
  5. /* USER CODE BEGIN 3 */
  6. SysClk = HAL_RCC_GetSysClockFreq();
  7. printf("System Clock is :%d\r\n",SysClk);
  8. HAL_UART_Transmit(&huart1,"This is uart example for stm32cbueMX of IOS\r\n",sizeof("This is uart example for stm32cbueMX of IOS \r\n"),1000);
  9. HAL_Delay(1000);
  10. }
5、使用OS的终端,运行简单的命令(这个命令是参考网上的),使终端打印出信息。(当然也可以用windows的串口调试助手,用终端就是想装装X) a、安装OS版的驱动(因为使用的是PL2303的usb转TTL的串口线) PL2303驱动.png b、查看驱动是否安装成功: 驱动安装成功.png c、实物连接: 硬件接线图.png d、运行终端命令:
  1. cd /dev
  2. ls tty.*
  3. screen /dev/tty.usbserial 115200
终端2.png (如果这个命令报错,重新插拔USB转TTL的串口线即可) 终端打印的信息如下: 终端打印信息.png 总体来说,OS版的STM32CubeMX除了安装跟Windows有点区别之外,好像其他暂时没有发现与windows有啥区别。 本帖最后由 huaiqiao 于 2016-6-20 10:47 编辑

回复评论 (6)

谢谢楼主的试水教程,不过把你朋友的电脑当小白鼠,果然是真友情。。哈哈哈。。期待楼主更多的大作。
玩板看这里: https://bbs.eeworld.com.cn/elecplay.html EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
点赞  2016-6-20 10:21
引用: okhxyyo 发表于 2016-6-20 10:21
谢谢楼主的试水教程,不过把你朋友的电脑当小白鼠,果然是真友情。。哈哈哈。。期待楼主更多的大 ...

呵呵呵,就是稍稍好奇一些OS下这个软件到底咋样?”我不入地狱,谁人地狱”。O(∩_∩)O~~
点赞  2016-6-20 10:37
这个cubemx有意思,代码生成器,不错,之前还想自己写一个简单的代码生成的软件的,一直懒没写完。。。
点赞  2016-7-16 09:26
引用: 汤权 发表于 2016-7-16 09:26
这个cubemx有意思,代码生成器,不错,之前还想自己写一个简单的代码生成的软件的,一直懒没写完。。。

以前103的时候,有个公司写过,后来那个公司的那个软件不能用了。
点赞  2016-7-16 19:37
引用: huaiqiao 发表于 2016-7-16 19:37
以前103的时候,有个公司写过,后来那个公司的那个软件不能用了。

工具还是非常好的,较少工作量有不容易错,好东西。
亚里士缺德
点赞  2016-7-17 15:22
引用: 汤权 发表于 2016-7-17 15:22
工具还是非常好的,较少工作量有不容易错,好东西。

嗯嗯,但是目前我还是以标准外设库为主,后面要打算也好好深入的搞搞HAL的库 了。
点赞  2016-7-17 23:08
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复