你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 串口配置

[复制链接]
废鱼 提问时间:2010-4-21 13:46 /
#include "stm32f10x_lib.h"
u16 RecDateBuffer[100];
u16 RecLen;
u8 SendDateBuffer[100];
/*******************************************************************************
* Function Name  : Uart_Ini
* Description    : 串口初始化
* Input          :
* Output         : None
* Return         :
*******************************************************************************/
void USART_Ini(USART_TypeDef* USARTx,u16 buad)
{
   USART_InitTypeDef USART_InitStructure;
   USART_ClockInitTypeDef USART_ClockIni;
   GPIO_InitTypeDef GPIO_InitStructure;
   /* Configure USART1 Tx (PA.09) as alternate function push-pull */
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
   GPIO_Init(GPIOD, &GPIO_InitStructure);
   
   /* Configure USART1 Rx (PA.10) as input floating */
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
   GPIO_Init(GPIOD, &GPIO_InitStructure);
   USART_InitStructure.USART_BaudRate = 9600;      //串口波特率 
   USART_InitStructure.USART_WordLength = USART_WordLength_8b;  //串口数据长度
   USART_InitStructure.USART_StopBits = USART_StopBits_1;   //串口停止位
   USART_InitStructure.USART_Parity = USART_Parity_No;    //串口奇偶效验位
   USART_InitStructure.USART_Mode = USART_Mode_Rx|USART_Mode_Tx; //串口模式,开始起发送和接收
   USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; //串口硬件流
   USART_ClockIni.USART_Clock = USART_Clock_Disable;
   USART_ClockIni.USART_CPOL = USART_CPOL_Low;
   USART_ClockIni.USART_CPHA = USART_CPHA_2Edge;
   USART_ClockIni.USART_LastBit = USART_LastBit_Disable;

   USART_Init(USARTx,&USART_InitStructure);
   USART_ClockInit(USARTx,&USART_ClockIni); 
   /* Enable USART1 */
  USART_Cmd(USARTx, ENABLE);  //开启串口X
}
/*******************************************************************************
* Function Name  : Getch
* Description    : 串口中断开启或关闭
* Input          : USARTx:x=串口号
                   NewState: ENABLE开启中断,DISABLE关闭中断
* Output         : None
* Return         :
*******************************************************************************/
void USART_IT(USART_TypeDef* USARTx,FunctionalState NewState)
{
    NVIC_InitTypeDef NVIC_InitStructure;
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
    NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQChannel;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 5;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);   
  
   if(NewState==ENABLE)
   {
     USART_ITConfig(USARTx,USART_IT_RXNE | USART_IT_TXE,ENABLE);
   }
   else
   {
     USART_ITConfig(USARTx,USART_IT_RXNE | USART_IT_TXE,DISABLE);
   }
}
/*******************************************************************************
* Function Name  : Getch
* Description    : 串口接收字符
* Input          : USARTx:x=串口号
* Output         : None
* Return         :
*******************************************************************************/
u16 Getch(USART_TypeDef* USARTx)
{
   u16 ch;
   if (USART_GetFlagStatus(USARTx,USART_FLAG_RXNE)==SET)
   {
     ch=USART_ReceiveData(USARTx);
  //return(ch);
   }
   return(ch); 
}
/*******************************************************************************
* Function Name  : Uart_Ini
* Description    : 接收字符串
* Input          : USARTx:x=串口号
       buffer:接收字符串数组
* Output         : None
* Return         :
*******************************************************************************/
void GetStr(USART_TypeDef* USARTx)
{
    //u16 i;
 while(USART_GetFlagStatus(USARTx,USART_FLAG_RXNE)==SET)
 {
   if(USART_GetFlagStatus(USARTx,USART_FLAG_ORE)==RESET)
   {
      if(RecLen
收藏 评论5 发布时间:2010-4-21 13:46

举报

5个回答
lf8013 回答时间:2010-10-8 22:25:15

RE:STM32 串口配置

在学校串口,谢谢了
zzz80675@sohu.c 回答时间:2010-11-14 09:57:11

RE:STM32 串口配置

谢谢了
wdooy 回答时间:2010-11-17 17:42:01

RE:STM32 串口配置

谢谢了 我遇到的问题很多,唉,我也无语了对川口来说!!!
瘦猪呆兔 回答时间:2011-4-21 15:22:45

RE:STM32 串口配置

RCC不配置好像不行的吧!?
uniqueeefocus34 回答时间:2013-2-8 15:03:12

RE:STM32 串口配置

对啊,要先配置GPIO和串口的RCC

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版