久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
STM32用RTS引腳來自動驅動RS485的接收
[打印本頁]
作者:
xhaity
時間:
2021-2-5 20:27
標題:
STM32用RTS引腳來自動驅動RS485的接收
STM32F有一些型號,可以直接驅動RS485的;在網上搜索了好多,沒有現成的實例;好多提問,最佳答案是否定的,不能自動切換,需要用普通IO做RE 和 DE的驅動。本人使用GD32F330 實驗,用RTS引腳實現自動切換;初始化代碼分享出來供參考。這顆MCU和STM32F030和051系列管腳兼容,寄存器兼容。
/*
* File: USART.h
* Author: hai
*
* Created on November 22, 2020, 11:35 PM
*/
#ifndef USART_H
#define USART_H
#include "gd32f3x0.h"
/* definition for COM 1, connected to USART0 */
#define INVERTERCOM USART1
#define INVERTERCOM_CLK RCU_USART1
#define INVERTERCOM_TX_PIN GPIO_PIN_2
#define INVERTERCOM_RX_PIN GPIO_PIN_3
#define INVERTERCOM_RTS_PIN GPIO_PIN_1
#define INVERTERCOM_GPIO_PORT GPIOA
#define INVERTERCOM_GPIO_CLK RCU_GPIOA
#define INVERTERCOM_AF GPIO_AF_1
#define INVERTERCOM_BPS 38400U
#ifdef __cplusplus
extern "C" {
#endif
void com_init(uint32_t COM);
#ifdef __cplusplus
}
#endif
#endif /* USART_H */
#include "usart.h"
#include <stdio.h>
void com_init(uint32_t COM)
{
/* enable GPIO clock */
rcu_periph_clock_enable(INVERTERCOM_GPIO_CLK);
/* enable USART clock */
rcu_periph_clock_enable(INVERTERCOM_CLK);
/* connect port to USARTx_Tx_RTS */
gpio_af_set(INVERTERCOM_GPIO_PORT, INVERTERCOM_AF, INVERTERCOM_RTS_PIN|INVERTERCOM_TX_PIN|INVERTERCOM_RX_PIN);
/* configure USART Tx as alternate function push-pull */
gpio_mode_set(INVERTERCOM_GPIO_PORT,GPIO_MODE_AF,GPIO_PUPD_PULLUP,INVERTERCOM_RTS_PIN);
gpio_output_options_set(INVERTERCOM_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ,INVERTERCOM_RTS_PIN);
/* configure USART Tx as alternate function push-pull */
gpio_mode_set(INVERTERCOM_GPIO_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP,INVERTERCOM_TX_PIN);
gpio_output_options_set(INVERTERCOM_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ,INVERTERCOM_TX_PIN);
/* configure USART Rx as alternate function push-pull */
gpio_mode_set(INVERTERCOM_GPIO_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP,INVERTERCOM_RX_PIN);
gpio_output_options_set(INVERTERCOM_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ,INVERTERCOM_RX_PIN);
/* USART configure */
usart_deinit(COM);
usart_baudrate_set(COM,INVERTERCOM_BPS);
usart_rs485_driver_enable(COM); //驅動使能
usart_driver_deassertime_config(COM,0x1F); // DE (驅動使能)信號的置位與第一個字節的起始位之間的時間間隔0-0x1F
usart_driver_assertime_config(COM,0x1F); //定義一個發送信息最后一個字節的停止位與置低 DE(驅動使能)信號之間的時間間隔
usart_depolarity_config(COM,USART_DEP_LOW); //DE極性,根據硬件選擇,這里硬件用三極管反向了
usart_transmit_config(COM, USART_TRANSMIT_ENABLE);
usart_receive_config(COM, USART_RECEIVE_ENABLE);
usart_enable(COM);
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
h视频免费在线观看
|
久久不卡日韩美女
|
99久久免费精品国产男女高不卡
|
在线播放亚洲
|
日韩精品 电影一区 亚洲
|
精品亚洲一区二区三区
|
欧美激情精品久久久久久
|
日日干干
|
欧美久久久久久久
|
国产一区二区三区在线视频
|
狠狠爱一区二区三区
|
亚洲免费网址
|
亚洲成人av一区二区
|
国产精品久久久久久亚洲调教
|
国产欧美在线播放
|
国产高清精品在线
|
成人小视频在线观看
|
日韩一
|
国产精品久久亚洲
|
欧美日韩一区二区三区四区五区
|
日韩中文字幕一区二区
|
日本天天操
|
日本一二三区电影
|
呦呦在线视频
|
国产在线www
|
免费成人在线网站
|
久久精品国产免费高清
|
欧美一区二区三区在线观看视频
|
美女黄网
|
羞羞色影院
|
99国产精品视频免费观看一公开
|
成人精品
|
九九热在线免费视频
|
老子午夜影院
|
在线观看亚洲
|
天堂综合网
|
中文字幕一区二区三区四区五区
|
中文字幕日韩在线
|
91精品国产自产在线老师啪
|
欧美激情精品久久久久久变态
|
色综合天天天天做夜夜夜夜做
|