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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2372|回復: 4
收起左側

stm32f10x串口通信的問題

[復制鏈接]
ID:424805 發表于 2019-3-18 16:50 | 顯示全部樓層 |閱讀模式
1:
typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus;

if(USART_GetITStatus(UART4, USART_IT_RXNE) != RESET).......這一句中的(USART_GetITStatus(UART4, USART_IT_RXNE))發生中斷時,就應該是是if(1!=RESET,執行這個if里面的中斷服務函數。
2:
void Usart4_SendString里USART_TypeDef * pUSARTx,他是怎么找到USART4發送數據的,這里只是定義一個新的指針名,我看USART_TypeDef里面并沒有串口4的定義。
typedef struct//
USART_TypeDef的定義

{
  __IO uint16_t SR;
  uint16_t  RESERVED0;
  __IO uint16_t DR;
  uint16_t  RESERVED1;
  __IO uint16_t BRR;
  uint16_t  RESERVED2;
  __IO uint16_t CR1;
  uint16_t  RESERVED3;
  __IO uint16_t CR2;
  uint16_t  RESERVED4;
  __IO uint16_t CR3;
  uint16_t  RESERVED5;
  __IO uint16_t GTPR;
  uint16_t  RESERVED6;
}

void Usart4_SendByte( USART_TypeDef * pUSARTx, u8 ch)
{
    /* 發送一個字節數據到USART */
    USART_SendData(pUSARTx,ch);
    /* 等待發送數據寄存器為空 */
    while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET)
    {
        ;
    }
}
/************************************************************
程序功能:串口4發送字符串

void Usart4_SendString( USART_TypeDef * pUSARTx, char *str)
{
    unsigned int k=0;
    do
    {
        Usart4_SendByte( pUSARTx, *(str + k) );
        k++;
    }
    while(*(str + k)!='\0');
    /* 等待發送完成 */
    while(USART_GetFlagStatus(pUSARTx,USART_FLAG_TC)==RESET)
        {}
}
/************************************************************
程序功能:串口4發送一個16位數

void Usart4_SendHalfWord( USART_TypeDef * pUSARTx, u16 ch)
{
    uint8_t temp_h, temp_l;
    /* 取出高八位 */
    temp_h = (ch&0XFF00)>>8;
    /* 取出低八位 */
    temp_l = ch&0XFF;
    /* 發送高八位 */
    USART_SendData(pUSARTx,temp_h);
    while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET)
    {
        ;
    }
    /* 發送低八位 */
    USART_SendData(pUSARTx,temp_l);
    while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET)
    {
        ;
    }
}
/************************************************************
程序功能:重定向c庫函數printf到串口,重定向后可使用printf函數

int fputc(int ch, FILE *f)
{
    /* 發送一個字節數據到串口 */
    USART_SendData(DEBUG_USART4, (uint8_t) ch);
    /* 等待發送完畢 */
    while (USART_GetFlagStatus(DEBUG_USART4, USART_FLAG_TXE) == RESET)
    {
        ;
    }
    return (ch);
}
/************************************************************
程序功能:重定向c庫函數scanf到串口,重寫向后可使用scanf、getchar等函數

int fgetc(FILE *f)
{
    /* 等待串口輸入數據 */
    while (USART_GetFlagStatus(DEBUG_USART4, USART_FLAG_RXNE) == RESET)
    {
        ;
    }
    return (int)USART_ReceiveData(DEBUG_USART4);
}



回復

使用道具 舉報

ID:424805 發表于 2019-3-19 21:46 | 顯示全部樓層
求解答第二個問題,我要哭了
回復

使用道具 舉報

ID:479009 發表于 2019-3-19 22:42 | 顯示全部樓層
指針指著的那段內存映射到寄存器的
回復

使用道具 舉報

ID:424805 發表于 2019-3-20 12:07 | 顯示全部樓層
Ahchi 發表于 2019-3-19 22:42
指針指著的那段內存映射到寄存器的

這個程序   為什么會影響定義printf輸出到指定串口
回復

使用道具 舉報

ID:479009 發表于 2019-3-22 01:13 | 顯示全部樓層
zeroL 發表于 2019-3-20 12:07
這個程序   為什么會影響定義printf輸出到指定串口

printf會調用fputc輸出的,你的程序定義了這個函數的話,鏈接器會鏈接你寫的這個函數,不要庫里面的
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产欧美一区二区三区另类精品 | 手机看黄av免费网址 | 亚洲欧美精品在线 | av在线免费观看网站 | 亚洲欧美激情四射 | a在线视频观看 | 亚洲精品自拍视频 | 日韩视频在线免费观看 | 国产精品亚洲欧美日韩一区在线 | 久久久精品网站 | 国产精品久久视频 | 天天操天天干天天爽 | 国产一区二区不卡 | 精品欧美一区二区三区精品久久 | 蜜月aⅴ国产精品 | 日韩精品一区二区三区在线播放 | 欧美日韩久久久久 | 欧美视频第二页 | 北条麻妃99精品青青久久 | 精品在线一区二区三区 | 日日夜夜操天天干 | 精品一区二区三区在线视频 | 久久久久久久一级 | 国产精品影视 | 国产91久久久久蜜臀青青天草二 | 久久五月婷 | 日韩无| 亚洲伊人a | 日韩欧美福利视频 | 国产精品福利久久久 | a看片 | 成人福利在线 | 午夜精品久久久久久久99黑人 | 欧美一区二区三区在线视频 | 国产精品久久久久久吹潮 | 国产午夜精品视频 | 青娱乐一区二区 | 国产精品污www一区二区三区 | 色婷婷久久 | 黄色三级免费网站 | 黄色成人av|