国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

GD32f303之rs485配置

這篇具有很好參考價值的文章主要介紹了GD32f303之rs485配置。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

簡介

? ? ? ? rs485是一種硬件通信接口,USART引腳的TTL電平通過SP485芯片轉換為差分信號,+2V~+6V表示"0",- 6V~- 2V表示"1"。RS485有兩線制和四線制兩種接線,四線制是全雙工通訊方式,本文采用兩線制半雙工通訊方式。文章來源地址http://www.zghlxwxcb.cn/news/detail-539500.html

1 rs485初始化

    //1、USART配置
   ?/* enable GPIO clock */
? ? rcu_periph_clock_enable(RCU_GPIOB);

? ? /* enable USART clock */
? ? rcu_periph_clock_enable(RCU_USART2);

? ? /* connect port to USARTx_Tx */
? ? gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_10 );

? ? /* connect port to USARTx_Rx */
? ? gpio_init(GPIOB, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_11);

? ? /* USART configure */
? ? usart_deinit(USART2);
? ? usart_baudrate_set(USART2, 9600U);
? ? usart_receive_config(USART2, USART_RECEIVE_ENABLE);?? ??? ?//默認接收使能
? ? usart_transmit_config(USART2, USART_TRANSMIT_ENABLE);
? ? usart_enable(com);

    //2、 rs485使能
    /* enable the RS485_OE clock */
    rcu_periph_clock_enable(RCU_GPIOC);
    /* configure led GPIO port */
    gpio_init(GPIOC, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_3);
    GPIO_BC(GPIOC) = GPIO_PIN_3; 	//默認接收使能

    //3、rs485中斷初始化
    nvic_irq_enable(USART2_IRQn,0, 1U);
	usart_interrupt_enable(USART2, USART_INT_RBNE);         /* 使能USART2讀區(qū)非空中斷 */  
	usart_interrupt_enable(USART2, USART_INT_IDLE);         /* 使能USART2空閑中斷 */

    

2 rs485發(fā)送數據

//發(fā)送數據
int rs485_send_data(uint8_t *buf, uint32_t len)
{   
    gpio_bit_set(GPIOC,  GPIO_PIN_3);; // 設置為發(fā)送模式
		
    while(len--)
	{
		while(RESET == usart_flag_get(USART2, USART_FLAG_TBE));	// 等待發(fā)送區(qū)為空
		usart_data_transmit(USART2, *(buf++));  		// 發(fā)送數據
    }
	while(RESET == usart_flag_get(USART2, USART_FLAG_TC));	// 發(fā)送完成中斷
		
	rxcount = 0;		
	gpio_bit_reset(GPIOC,  GPIO_PIN_3);		// 設置為接收模式
		
	return 0;
}

3?中斷接收數據

void USART2_IRQHandler(void)
{   
    if((RESET != usart_interrupt_flag_get(USART2, USART_INT_FLAG_RBNE)) && 
		(RESET != usart_flag_get(USART2, USART_FLAG_RBNE)))// 接收到數據
	{	
		rxbuffer[rxcount++] = usart_data_receive(USART2);
		usart_interrupt_flag_clear(USART2, USART_INT_FLAG_RBNE); //清中斷標志
	} else if (RESET != usart_interrupt_flag_get(USART2, USART_INT_FLAG_IDLE)) {
	    usart_interrupt_flag_clear(USART2, USART_INT_FLAG_IDLE);
		usart_data_receive(USART2); /* 清除接收完成標志位 */
		g_rs485_receive_end = 1;     //事件通知接收完成
	}
}

到了這里,關于GD32f303之rs485配置的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 單片機GD32F303RCT6 (Macos環(huán)境)開發(fā) (二十)—— 光感芯片veml7700的使用

    單片機GD32F303RCT6 (Macos環(huán)境)開發(fā) (二十)—— 光感芯片veml7700的使用

    1、veml有7個寄存器,每個十六位,見圖。 00是config寄存器, 01 02 是中斷設置的閾值 03是節(jié)能模式的設置 04 是得到的光的亮度值 05是得到的data of whole WHITE 06是中斷設置值。 2、我們只測試得到光的亮度值,所以veml寄存器設置如下: 設置gain,integration time ,power save mode ,interrup

    2024年02月04日
    瀏覽(30)
  • GD32F30x系列---串口通信(USART)基礎配置(中斷接收模式)

    GD32F30x系列---串口通信(USART)基礎配置(中斷接收模式)

    GD32F30x系列USART數據幀可以通過全雙工或半雙工、同步或異步進行傳輸,且支持DMA功能,目前我們這里先不使用DMA,下一節(jié)再使用DMA與其對比。 其他的原理與解析就不再贅述,大家可以自行搜索相關資料,要多看數據手冊。 1、創(chuàng)建一個usart.c文件和usart.h文件到對應的文件夾中

    2024年02月12日
    瀏覽(47)
  • STM32開發(fā)(六)STM32F103 通信 —— RS485 Modbus通信編程詳解

    STM32開發(fā)(六)STM32F103 通信 —— RS485 Modbus通信編程詳解

    ??《上一篇》 ???《主目錄》 ???《下一篇》 了解 RS485 Modbus協議技術 。本實驗是基于STM32F103開發(fā) 實現 通過RS-485實現modbus協議。 準備好了嗎?開始我的show time。 1、硬件開發(fā)準備 主控:STM32F103ZET6 RS485收發(fā)器:SP3485P 2、軟件開發(fā)準備 軟件開發(fā)使用虛擬機 + VScode + STM32Cub

    2024年02月03日
    瀏覽(25)
  • 【正點原子STM32】RS485串行通信標準(串口基礎協議 和 MODBUS協議、總線連接、通信電路、通信波形圖、RS485相關HAL庫驅動、RS485配置步驟、)

    【正點原子STM32】RS485串行通信標準(串口基礎協議 和 MODBUS協議、總線連接、通信電路、通信波形圖、RS485相關HAL庫驅動、RS485配置步驟、)

    一、RS485介紹 二、RS485相關HAL庫驅動介紹 三、RS485配置步驟 四、編程實戰(zhàn) 五、總結 串口、UART、TTL、RS232、RS422和RS485之間的關系可以如此理解: 串口 :是一個廣義術語,通常指的是采用串行通信協議的接口,它可以包括多種具體的物理接口標準和邏輯電平標準。 UART (通用

    2024年04月13日
    瀏覽(30)
  • STM32CUBUMX配置RS485(中斷接收)--保姆級教程

    STM32CUBUMX配置RS485(中斷接收)--保姆級教程

    ———————————————————————————————————— ? 大家好哇!我是小光,嵌入式愛好者,一個想要成為系統(tǒng)架構師的大三學生。 ?最近在開發(fā)一個STM32H723ZGT6的板子,使用STM32CUBEMX做了很多驅動,包括ADC、UART、RS485、EEPROM(IIC)、FLASH(SPI)等等。

    2024年02月16日
    瀏覽(19)
  • STM32CUBUMX配置RS485 modbus STM32(從機)親測可用

    STM32CUBUMX配置RS485 modbus STM32(從機)親測可用

    ———————————————————————————————————— ? 大家好哇!我是小光,嵌入式愛好者,一個想要成為系統(tǒng)架構師的大三學生。 ?最近在開發(fā)一個STM32H723ZGT6的板子,使用STM32CUBEMX做了很多驅動,包括ADC、UART、RS485、EEPROM(IIC)、FLASH(SPI)、mod

    2024年02月14日
    瀏覽(27)
  • GD32F30x系列---CAN通信收發(fā)配置

    GD32F30x系列---CAN通信收發(fā)配置

    GD32F30x系列CAN通信配置: 先找到CAN模塊時鐘時掛載在APB1總線上的,如下圖所示: APB1總線的最大頻率為60MHz,如下圖所示: 根據總線頻率可以計算出對應波特率的配置BS1,BS2等; 如果不會計算的話也可以直接使用工具,如下圖所示: 這里工具會直接幫你你計算好BS1、BS2、P

    2024年01月19日
    瀏覽(67)
  • GD32F470之網絡lwip+UDP配置+lan8720芯片

    GD32F470之網絡lwip+UDP配置+lan8720芯片

    先申明,本欄目用的都是GD32F470芯片240M,軟件用的是keil,編寫用的是C++(其實和C沒有區(qū)別). 和STM32的lwip配置大致一樣,主要不一樣的地方在于 PHY的配置順序問題,下面會講到. 我用的是lan8720,所以頭文件要修改一下,在gd32f4xx_enet.h中。 把PHY_TYPE改為LAN8700, PHY_ADDRESS改為0, 這是

    2023年04月09日
    瀏覽(56)
  • STM32之485通信(RS485串口編程)

    目錄 1.編程思路 2.代碼? ? USART串口的庫函數: ???USART_: ? ? ? AIRCR中斷分組設置表:? ? ? ? ? ? 通過485通信來實現MCU之間的通信,把接收到的數據通過串口助手顯示在pc端。第一是對usart1,usart2進行初始化,Usart1負責與串口助手通信,Usart2,485負責進行MCU通信。第二是

    2024年01月18日
    瀏覽(79)
  • STM32RS485通信

    STM32RS485通信

    本章所要實現的功能是:通過操作 KEY_UP 鍵,STM32F1 的串口 2 將 PC 機發(fā) 送過來的數據原封不動的返回給 PC 機串口,同時 DS0 指示燈不斷閃爍,提示系 統(tǒng)正常運行。程序框架如下: (1)初始化串口 2,并使能串口接收中斷等 (2)編寫串口 2 中斷函數(將接收到的數據返回出去

    2024年02月14日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包