久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

STM32F407串口相關問題

查看數: 1877 | 評論數: 7 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2022-7-27 16:17

正文摘要:

我想請問下STM32F407的USATT1 PA9 PA10與USART6(TTL)PC6 PC7有什么區(qū)別啊,同樣都是用cubeMX生成的,為什么USART1可以通訊,USART6就不行呢;參數都是這些參數,就引腳換了還有把AF7換成AF8了;

回復

ID:1039954 發(fā)表于 2022-7-28 14:54
好吧,被自己無語到,原來是因為串口一和串口二引腳不同,導致接線位置不一樣,而我一直用的是串口一的串口,,,,
ID:1039954 發(fā)表于 2022-7-28 08:45
yzwzfyz 發(fā)表于 2022-7-28 08:19
細讀CPU的手冊上的相關章節(jié),這個比較靠譜。

是的,我就是想找到關于這個芯片引腳資料來的,好對比他們的區(qū)別
ID:1039954 發(fā)表于 2022-7-28 08:20
文件太大了,上傳不了
ID:123289 發(fā)表于 2022-7-28 08:19
細讀CPU的手冊上的相關章節(jié),這個比較靠譜。
ID:1039954 發(fā)表于 2022-7-28 08:07
都是一樣的程序(系統(tǒng)自動生成的),我就加了一個fputc和fgetc函數,其他的沒什么變化了,就引腳不同,
ID:1039954 發(fā)表于 2022-7-28 08:04
USART1:
usart.c
#include "usart.h"
#include "stm32f4xx_hal.h"
#include <stdio.h>
UART_HandleTypeDef huart1;
void MX_USART1_UART_Init(void)
{


  huart1.Instance = USART1;
  huart1.Init.BaudRate = 115200;
  huart1.Init.WordLength = UART_WORDLENGTH_8B;
  huart1.Init.StopBits = UART_STOPBITS_1;
  huart1.Init.Parity = UART_PARITY_NONE;
  huart1.Init.Mode = UART_MODE_TX_RX;
  huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  huart1.Init.OverSampling = UART_OVERSAMPLING_16;
  if (HAL_UART_Init(&huart1) != HAL_OK)
  {
    Error_Handler();
  }
}


void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
{


  GPIO_InitTypeDef GPIO_InitStruct = {0};
  if(uartHandle->Instance==USART1)
  {


    __HAL_RCC_USART1_CLK_ENABLE();


    __HAL_RCC_GPIOA_CLK_ENABLE();
    /**USART1 GPIO Configuration
    PA9     ------> USART1_TX
    PA10     ------> USART1_RX
    */
    GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
    GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);


    HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
    HAL_NVIC_EnableIRQ(USART1_IRQn);


  }
}


void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
{


  if(uartHandle->Instance==USART1)
  {


    __HAL_RCC_USART1_CLK_DISABLE();


    /**USART1 GPIO Configuration
    PA9     ------> USART1_TX
    PA10     ------> USART1_RX
    */
    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);




    HAL_NVIC_DisableIRQ(USART1_IRQn);
  
  }
}


int fputc(int ch, FILE *f)
{
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
  return ch;
}


int fgetc(FILE *f)
{
  uint8_t ch = 0;
  HAL_UART_Receive(&huart1, &ch, 1, 0xffff);
  return ch;
}

main.c
#include "main.h"
#include "usart.h"
#include "gpio.h"

#define RXBUFFERSIZE  256
char RxBuffer[RXBUFFERSIZE];

void SystemClock_Config(void);
int main(void)
{

  HAL_Init();

  SystemClock_Config();

  MX_GPIO_Init();
  MX_USART1_UART_Init();

  while (1)
  {

                printf("Zzz\n");
                        HAL_Delay(1000);
  }

}
void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

  /** Configure the main internal regulator output voltage
  */
  __HAL_RCC_PWR_CLK_ENABLE();
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
  /** Initializes the RCC Oscillators according to the specified parameters
  * in the RCC_OscInitTypeDef structure.
  */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLM = 25;
  RCC_OscInitStruct.PLL.PLLN = 336;
  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
  RCC_OscInitStruct.PLL.PLLQ = 4;
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    Error_Handler();
  }  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
  {
    Error_Handler();
  }
}
void Error_Handler(void)
{
  while (1)
  {
  }
  /* USER CODE END Error_Handler_Debug */
}

USART6

usart.c
#include "usart.h"
#include "stm32f4xx_hal.h"
#include <stdio.h>


UART_HandleTypeDef huart6;


void MX_USART6_UART_Init(void)
{
  huart6.Instance = USART6;
  huart6.Init.BaudRate = 115200;
  huart6.Init.WordLength = UART_WORDLENGTH_8B;
  huart6.Init.StopBits = UART_STOPBITS_1;
  huart6.Init.Parity = UART_PARITY_NONE;
  huart6.Init.Mode = UART_MODE_TX_RX;
  huart6.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  huart6.Init.OverSampling = UART_OVERSAMPLING_16;
  if (HAL_UART_Init(&huart6) != HAL_OK)
  {
    Error_Handler();
        }
}


void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
{


  GPIO_InitTypeDef GPIO_InitStruct = {0};
  if(uartHandle->Instance==USART6)
  {


    __HAL_RCC_USART6_CLK_ENABLE();


    __HAL_RCC_GPIOC_CLK_ENABLE();
    /**USART6 GPIO Configuration
    PC6     ------> USART6_TX
    PC7     ------> USART6_RX
    */
    GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
    GPIO_InitStruct.Alternate = GPIO_AF8_USART6;
    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);


    /* USART6 interrupt Init */
    HAL_NVIC_SetPriority(USART6_IRQn, 0, 0);
    HAL_NVIC_EnableIRQ(USART6_IRQn);


  }
}


void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
{


  if(uartHandle->Instance==USART6)
  {


    __HAL_RCC_USART6_CLK_DISABLE();


    /**USART6 GPIO Configuration
    PC6     ------> USART6_TX
    PC7     ------> USART6_RX
    */
    HAL_GPIO_DeInit(GPIOC, GPIO_PIN_6|GPIO_PIN_7);


    /* USART6 interrupt Deinit */
    HAL_NVIC_DisableIRQ(USART6_IRQn);
  /* USER CODE BEGIN USART6_MspDeInit 1 */


  /* USER CODE END USART6_MspDeInit 1 */
  }
}


int fputc(int ch, FILE *f)
{
  HAL_UART_Transmit(&huart6, (uint8_t *)&ch, 1, 0xffff);
  return ch;
}




int fgetc(FILE *f)
{
  uint8_t ch = 0;
  HAL_UART_Receive(&huart6, &ch, 1, 0xffff);
  return ch;
}
main.c
#include "main.h"
#include "usart.h"
#include "gpio.h"


/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#define RXBUFFERSIZE  256
char RxBuffer[RXBUFFERSIZE];


void SystemClock_Config(void);


int main(void)
{


  HAL_Init();


  SystemClock_Config();


  MX_GPIO_Init();
  MX_USART6_UART_Init();


  while (1)
  {


                printf("Zzzz\n");
                        HAL_Delay(1000);
  }


}


/**
  * @brief System Clock Configuration
  * @retval None
  */
void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};


  /** Configure the main internal regulator output voltage
  */
  __HAL_RCC_PWR_CLK_ENABLE();
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
  /** Initializes the RCC Oscillators according to the specified parameters
  * in the RCC_OscInitTypeDef structure.
  */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLM = 25;
  RCC_OscInitStruct.PLL.PLLN = 336;
  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
  RCC_OscInitStruct.PLL.PLLQ = 4;
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    Error_Handler();
  }
  /** Initializes the CPU, AHB and APB buses clocks
  */
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;


  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
  {
    Error_Handler();
  }
}


/**
  * @brief  This function is executed in case of error occurrence.
  * @retval None
  */
void Error_Handler(void)
{


  __disable_irq();
  while (1)
  {
  }
  /* USER CODE END Error_Handler_Debug */
}


ID:248705 發(fā)表于 2022-7-27 18:31
要不咱還是把工程發(fā)出來?這樣子大家只能靠猜

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 夜色www国产精品资源站 | 成人免费看片 | 日韩中文在线观看 | 亚洲免费视频网站 | 免费一区二区三区在线视频 | 97精品国产手机 | 一级aaaaaa毛片免费同男同女 | 欧美日韩精品免费 | 夜夜干夜夜操 | 婷婷99| 中文字幕一区二区三区四区五区 | 亚洲不卡在线观看 | 黄色大片在线播放 | 国产视频一视频二 | 欧洲精品久久久久毛片完整版 | 欧美a级成人淫片免费看 | 青青草社区 | 一区二区久久精品 | 美女国产| 日韩中文字幕 | 欧洲毛片 | 欧美精品一区二区三区四区 在线 | 日韩一区二区三区在线播放 | 午夜精品久久久久久久久久久久久 | 天天拍天天色 | 日本不卡免费新一二三区 | 日韩av大片免费看 | 欧美第一页| 韩日在线观看视频 | 亚洲资源站 | 日韩免费| 在线免费观看a级片 | 国产精品一区二区福利视频 | 午夜丰满少妇一级毛片 | 激情欧美一区二区三区中文字幕 | 国产精品久久久久久久久久久久 | 中文字幕国产在线 | 免费久久久 | 日韩av在线免费 | 国产精品中文字幕在线 | 成人精品在线 |