2015-12-10 01:48 PM
I am new here. Starting using Nucleo-F072RB. I can see the Virtual Com Port on my PC when I connect USB cable to the ST-Link board. The ST-Link Debug device also shows up in device manager. I am able to flash the board with new firmware.
Can I use the same USB cable to send and receive data through the VCP?I tried using the CDC_Standalone application for the STM32072b_EVAL project, but I am not getting anywhere right now.2015-12-10 08:07 PM
You are confusing things here. The VCP provided by the ST-LINK manifests as pins attached to a physical USART of the STM32F072RB. There is no VCP/CDC USB firmware on the part you are programming.
Something like this should suffice,/* USART2 PA.2 Tx, PA.3 Rx STM32F0xx sourcer32@gmail.com */
#include ''stm32f0xx.h''
int main(void)
{
USART_InitTypeDef USART_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_1);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_1);
/* Configure USART2 pins: Rx and Tx ----------------------------*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART2, &USART_InitStructure);
USART_Cmd(USART2,ENABLE);
while(1)
{
while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
USART_SendData(USART2, 'X');
}
}
2015-12-11 05:06 AM
If you still need to be able to implement USB on the chip, adding an external connector will suffice. The firmware packages that are available are setup for the individual boards and you need to know the differences if you are going to use the code. The Nucleos need an external crystal to use some of the eval code which is how I implemented USB MSC on my nucleoF401. The schematics and app notes will help you in knowing what pins to connect to what for the connector.
2015-12-11 06:04 AM
On the Nucleo board you can use the 8 MHz, crystal based source, provided by the ST-LINK chip.
2015-12-11 08:50 AM
Thanks for the replies.
Sorry for such basic issues.I have played with the Arduino and I can send data back through the serial port form the Arduino to a serial port monitor on the system (computer). That is what I wanted to do.The VCP is connected to the ST-Link. It seems it cannot be used by the ST microcontroller (STM32F072) to send data or receive data from the system.2015-12-11 09:22 AM
The VCP is connected to the ST-Link. It seems it cannot be used by the ST microcontroller (STM32F072) to send data or receive data from the system.
That seems at odds with my understanding of the situation...