社区导航

 

搜索
查看: 7818|回复: 10

[原创] 【Nucleo心得】+让您学习STM32 Nucleo 更精彩!

[复制链接]

5678

TA的帖子

453

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

发表于 2014-9-24 09:59 | 显示全部楼层 |阅读模式
【Nucleo心得】+让您学习STM32 Nucleo 更精彩!

STM32 Nucleo板载ST-LINK调试器,同时该调试器扩展扩展虚拟串口,下面通过硬件,软件学习下如何把它利用起来!

1、硬件
找到板子背面SB62,SB63,短路这 2处。
IMG_2704.JPG     左下角, IMG_2705.JPG    焊好后,右上角

硬件说明:USART2-PA2=ST-LINK-RX,USART2-PA3 =ST-LINK-TX
2.PNG

2、软件
打开例程工程:UART_TwoBoards_ComPolling
stm32cubel0\STM32Cube_FW_L0_V1.1.0\Projects\STM32L053R8-Nucleo\Examples\UART\UART_TwoBoards_ComPolling\MDK-ARM

修改main.h
#define USARTx                           USART2
#define USARTx_CLK_ENABLE()              __USART2_CLK_ENABLE();
#define USARTx_RX_GPIO_CLK_ENABLE()      __GPIOA_CLK_ENABLE()
#define USARTx_TX_GPIO_CLK_ENABLE()      __GPIOA_CLK_ENABLE()


#define USARTx_FORCE_RESET()             __USART2_FORCE_RESET()
#define USARTx_RELEASE_RESET()           __USART2_RELEASE_RESET()


/* Definition for USARTx Pins */
#define USARTx_TX_PIN                    GPIO_PIN_2
#define USARTx_TX_GPIO_PORT              GPIOA  
#define USARTx_TX_AF                     GPIO_AF4_USART1
#define USARTx_RX_PIN                    GPIO_PIN_3
#define USARTx_RX_GPIO_PORT              GPIOA
#define USARTx_RX_AF                     GPIO_AF4_USART1



我想的功能是按下B1按纽就发送一次的功能
直接while(1)一下好了
#ifdef TRANSMITTER_BOARD
  /* Configure Button Key */
  BSP_PB_Init(BUTTON_KEY, BUTTON_MODE_GPIO);
  
  /* Toggle LED2 waiting for user to press button */
  BSP_LED_On(LED2);       
while(1)
{
  /* Wait for Button Key press before starting the Communication */
  while (BSP_PB_GetState(BUTTON_KEY) == RESET)
  {       
  }
  
  /* Wait for Button Key to be release before starting the Communication */
  while (BSP_PB_GetState(BUTTON_KEY) == SET)
  {
  }
  
       


  /* Turn LED2 off */
  BSP_LED_Off(LED2);
  
  /* The board sends the message and expects to receive it back */
  
  /*##-2- Start the transmission process #####################################*/  
  /* While the UART in reception process, user can transmit data through
     "aTxBuffer" buffer */


  if(HAL_UART_Transmit(&UartHandle, (uint8_t*)aTxBuffer, TXBUFFERSIZE, 5000)!= HAL_OK)
  {
    Error_Handler();   
  }
   
  
  /*##-3- Put UART peripheral in reception process ###########################*/  
  //if(HAL_UART_Receive(&UartHandle, (uint8_t *)aRxBuffer, RXBUFFERSIZE, 5000) != HAL_OK)
  //{
  //  Error_Handler();  
  //}
   
  /* Turn LED2 on: Transfer in reception process is correct */
  BSP_LED_On(LED2);
}  




此帖出自stm32/stm8论坛

回复

使用道具 举报

5678

TA的帖子

453

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

 楼主| 发表于 2014-9-24 10:02 | 显示全部楼层
ST把有些问题都考虑到了,既可以扩展,又不能少了基本功能!
只要我们有时多花点时间去看看!会有些惊喜的!
3.PNG

回复

使用道具 举报

35

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2014-9-24 11:39 | 显示全部楼层
为什么你跟我做的正好相反呢?难道我用的Nucleo的板子跟你们不一样么?我的版本号码:MB1136 rev C.
参看我的帖子 Nucleo 心得 - 一个软件工程师的初体验

“其中5.8节
The USART2 interface available on PA2 and PA3 of the STM32 microcontroller can be connected to ST-LINK MCU, STMicroelectronics Morpho connector or to Arduino connector. The choice can be changed by setting the related solder bridges. By default the USART2 communication between the target MCU and ST-LINK MCU is enabled in order to support Virtual Com Port for mbed (SB13 and SB14 ON, SB62 and SB63 OFF).”
板上缺省就是sb13 sb14 短路(0欧姆电阻)了,sb62 sb63断路,这样st-link的虚拟串口直接就可以用啊。
是不是没有正确安装驱动啊?

点评

我的也是C啊 sb13 sb14 默认短路(0欧姆电阻) sb62 sb63默认开路 我量了需要短接62,63 的  详情 回复 发表于 2014-9-24 11:50

回复

使用道具 举报

5678

TA的帖子

453

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

 楼主| 发表于 2014-9-24 11:50 | 显示全部楼层
abend 发表于 2014-9-24 11:39
为什么你跟我做的正好相反呢?难道我用的Nucleo的板子跟你们不一样么?我的版本号码:MB1136 rev C.
参看 ...

我的也是C啊


sb13 sb14 默认短路(0欧姆电阻)
sb62 sb63默认开路

我量了需要短接62,63 的

回复

使用道具 举报

35

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2014-9-24 12:09 | 显示全部楼层
本帖最后由 abend 于 2014-9-24 12:11 编辑

那个   ST-LINK/V2-1 USB驱动 安装以后,系统里面就自动多了一个虚拟串口
你有没有打开这个虚拟串口读数据?
你看下面我查询到的说明,缺省就是支持这个虚拟串口的。
" By default the USART2 communication between the target MCU and ST-LINK MCU is enabled in order to support Virtual Com Port for mbed (SB13 and SB14 ON, SB62 and SB63 OFF).”"
屏幕快照 2014-09-24 下午12.08.08.jpg

点评

短接62,63是把,RX,TX脚连接到Arduino的D1,D0上 本身板子已经短接,虚拟端口通讯口了  详情 回复 发表于 2014-9-24 13:16

回复

使用道具 举报

5678

TA的帖子

453

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

 楼主| 发表于 2014-9-24 13:16 | 显示全部楼层
abend 发表于 2014-9-24 12:09
那个   ST-LINK/V2-1 USB驱动 安装以后,系统里面就自动多了一个虚拟串口
你有没有打开这个虚拟串口读数据 ...

短接62,63是把,RX,TX脚连接到Arduino的D1,D0上
本身板子已经短接,虚拟端口通讯口了

点评

不是,我的意思是如果你要用这块neclueo板子读usart2的数据的话,什么都不用做,只要用usb线连接上电脑,电脑里面就会有一个虚拟串口(前提是你正确安装了驱动),读写这个虚拟串口,就可以得到usart2的数据  详情 回复 发表于 2014-9-24 13:42

回复

使用道具 举报

5678

TA的帖子

453

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

 楼主| 发表于 2014-9-24 13:19 | 显示全部楼层
原来我也直接考虑 Arduino的D1,D0与053的16,1 7脚连接。

实际上是ST-LINK和L053USART已经连接,只不过通过62,63连接到D1,D0的端子上

回复

使用道具 举报

35

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2014-9-24 13:42 | 显示全部楼层
蓝雨夜 发表于 2014-9-24 13:16
短接62,63是把,RX,TX脚连接到Arduino的D1,D0上
本身板子已经短接,虚拟端口通讯口了

不是,我的意思是如果你要用这块neclueo板子读usart2的数据的话,什么都不用做,只要用usb线连接上电脑,电脑里面就会有一个虚拟串口(前提是你正确安装了驱动),读写这个虚拟串口,就可以得到usart2的数据

点评

恩! 硬件上不用动了!  详情 回复 发表于 2014-9-24 13:46

回复

使用道具 举报

5678

TA的帖子

453

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

 楼主| 发表于 2014-9-24 13:46 | 显示全部楼层
abend 发表于 2014-9-24 13:42
不是,我的意思是如果你要用这块neclueo板子读usart2的数据的话,什么都不用做,只要用usb线连接上电脑, ...

恩!
硬件上不用动了!

回复

使用道具 举报

26

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2015-3-15 09:27 | 显示全部楼层
STM32 Nucleo板载ST-LINK调试器,同时该调试器扩展扩展虚拟串口

回复

使用道具 举报

809

TA的帖子

9

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2015-3-15 10:43 | 显示全部楼层
学习了  实际上是ST-LINK和L053USART已经连接,只不过通过62,63连接到D1,D0的端子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /7 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-2-28 10:40 , Processed in 0.344759 second(s), 19 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表