MDK程序无法运行

来源:互联网 发布:广东省发票打印软件 编辑:程序博客网 时间:2024/05/16 19:25

    继续我第一个MDKV5.15程序。程序的功能是用printf输出一个字符串,使用STM32F103RC芯片,V3.5.0版本的固件库,串口1输出。

#include "stm32f10x.h"#include <stdio.h>USART_InitTypeDef USART_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)int main(void){  /*!< At this stage the microcontroller clock setting is already configured,        this is done through SystemInit() function which is called from startup       file (startup_stm32f10x_xx.s) before to branch to application main.       To reconfigure the default setting of SystemInit() function, refer to       system_stm32f10x.c file     */              /* USARTx configured as follow:        - BaudRate = 115200 baud          - Word Length = 8 Bits        - One Stop Bit        - No parity        - Hardware flow control disabled (RTS and CTS signals)        - Receive and transmit enabled  */  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;  /* Enable GPIO clock */  RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1, ENABLE);  /* Configure USART Tx as alternate function push-pull */  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  GPIO_Init(GPIOA, &GPIO_InitStructure);  /* Configure USART Rx as input floating */  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;  GPIO_Init(GPIOA, &GPIO_InitStructure);  /* USART configuration */  USART_Init( USART1, &USART_InitStructure);      /* Enable USART */  USART_Cmd( USART1, ENABLE);  /* Output a message on Hyperterminal using printf function */  printf("\n\rHello world\n\r");  while (1)  {  }}/**  * @brief  Retargets the C library printf function to the USART.  * @param  None  * @retval None  */PUTCHAR_PROTOTYPE{  /* Place your implementation of fputc here */  /* e.g. write a character to the USART */  USART_SendData(USART1, (uint8_t) ch);  /* Loop until the end of transmission */  while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)  {}  return ch;}


    代码写出来后,在Debug选项页勾选了“Run to main()”,但是在运行时发现根本运行不到main(),连第一个函数“SystemInit()”都不执行。排除硬件问题,发现又是软件配置问题:需要在“Target”配置页面选中“Use MicoLIB”。


0 0
原创粉丝点击