找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5390|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

STM32如何主動串口發(fā)送數(shù)據(jù)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:388780 發(fā)表于 2018-9-24 16:24 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
看了好多串口通信的程序,都是串口接收數(shù)據(jù)后進(jìn)入中斷然后發(fā)送,我不要接收數(shù)據(jù)這部分啊,小白求一個主動一直發(fā)送自定義的數(shù)據(jù)給串口程序,前面給的程序自己改總沒有用

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:290170 發(fā)表于 2018-9-24 17:47 | 只看該作者
stm32看你是用什么的歷程,如果是正點(diǎn)原子的話,本來串口一就可以通過快速把數(shù)據(jù)存入BUF中發(fā)送出去,不用等接受到數(shù)據(jù),下面附上在其他串口都可以使用的發(fā)送函數(shù),STM32f103 f409標(biāo)準(zhǔn)庫通用的  void USART3_IRQHandler(void) {         u8 res;                       if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)//接收到數(shù)據(jù)         {                          res =USART_ReceiveData(USART3);                                  gizPutData(&res, 1);//數(shù)據(jù)寫入到緩沖區(qū)         }                                  }       void Usart_SendByte( USART_TypeDef * pUSARTx, uint8_t ch) {         /* 發(fā)送一個字節(jié)數(shù)據(jù)到USART */         USART_SendData(pUSARTx,ch);                          /* 等待發(fā)送數(shù)據(jù)寄存器為空 */         while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET);         }     //初始化IO 串口3 //pclk1:PCLK1時鐘頻率(Mhz) //bound:波特率           void usart3_init(u32 bound) {            NVIC_InitTypeDef NVIC_InitStructure;         GPIO_InitTypeDef GPIO_InitStructure;         USART_InitTypeDef USART_InitStructure;          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);                               //GPIOB時鐘         RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);                          //串口3時鐘使能           USART_DeInit(USART3);  //復(fù)位串口3         //USART3_TX   PB10     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;                                     //PB10     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                                       //復(fù)用推挽輸出     GPIO_Init(GPIOB, &GPIO_InitStructure);                                         //初始化PB10         //USART3_RX          PB11     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;                          //浮空輸入     GPIO_Init(GPIOB, &GPIO_InitStructure);                                         //初始化PB11                  USART_InitStructure.USART_BaudRate = bound;                                    //波特率一般設(shè)置為9600;         USART_InitStructure.USART_WordLength = USART_WordLength_8b;                    //字長為8位數(shù)據(jù)格式         USART_InitStructure.USART_StopBits = USART_StopBits_1;                         //一個停止位         USART_InitStructure.USART_Parity = USART_Parity_No;                            //無奇偶校驗(yàn)位         USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無硬件數(shù)據(jù)流控制         USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;                       //收發(fā)模式            USART_Init(USART3, &USART_InitStructure);       //初始化串口3             USART_Cmd(USART3, ENABLE);                      //使能串口                   //使能接收中斷     USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);  //開啟中斷                     //設(shè)置中斷優(yōu)先級         NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2 ;//搶占優(yōu)先級3         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;                //子優(yōu)先級3         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        //IRQ通道使能         NVIC_Init(&NVIC_InitStructure);        //根據(jù)指定的參數(shù)初始化VIC寄存器          }   

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報(bào)

板凳
ID:402056 發(fā)表于 2018-9-25 10:56 | 只看該作者
調(diào)用串口發(fā)送函數(shù),放在主循環(huán)里

USART1發(fā).rar

2.85 MB, 下載次數(shù): 155

回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表