91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-09
  • 語言: 其他
  • 標簽: modbus主機??

資源簡介

modbus主機源代碼,經測試,非常好用,也非常容易移植到STM32、51、AVR等單片機。

資源截圖

代碼片段和文件信息

#include?“stm32f10x.h“
#include?“bsp_usart.h“
#include?“bsp_key.h“
#include?“bsp_joystick.h“
#include?“modbusmaster.h“
#include?“crc16.h“

/*******************************************全局變量僅限本文件使用****************************************/
unsigned?char?Master_RxBuf[MASTER_RX_BUF_SIZE]={0};//主機接收緩沖區
unsigned?short?Master_RxCnt?=?0;???????????????????//接收數據計數器
unsigned?char?Master_RxFlag?=?0;
unsigned?char?g_ReplyTime?=?0;
unsigned?char?g_MasterSendData?=?0;
unsigned?char?g_MasterWriteRequest?=?0;
static?unsigned?short?ReadReg[8];
static?unsigned?short?WriteReg[6];

void?Master_Timing(unsigned?int?time_tick)
{
if(g_ReplyTime?>?0)g_ReplyTime?++;
if((time_tick?%?25)?==?0)g_MasterSendData?=?1;
}


//定時器7初始化
void?Timer7_Init(unsigned?int?ulBaudRate)
{
TIM_TimebaseInitTypeDef??TIM_TimebaseStructure;
NVIC_InitTypeDef?NVIC_InitStructure;

unsigned?short?PrescalerValue?=?(uint16_t)?(SystemCoreClock?/?20000L)?-?1;
unsigned?short?usTimerT35_50us=0; //數據幀最小間隔(ms)超過此時間則認為是下一幀

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM7?ENABLE);?//TIM7時鐘使能?


if(?ulBaudRate?>?19200?)
{
usTimerT35_50us?=?35;???????/*?1800us.?*/
}
else
{
/*?The?timer?reload?value?for?a?character?is?given?by:
?*
?*?ChTimeValue?=?Ticks_per_1s?/?(?Baudrate?/?11?)
?*?????????????=?11?*?Ticks_per_1s?/?Baudrate
?*?????????????=?220000?/?Baudrate
?*?The?reload?for?t3.5?is?1.5?times?this?value?and?similary
?*?for?t3.5.
?*/
usTimerT35_50us?=?(?7UL?*?220000UL?)?/?(?2UL?*?ulBaudRate?);
}
//TIM7初始化設置RS485_frame_Distance*10
TIM_TimebaseStructure.TIM_Period?=?usTimerT35_50us;?//設置在下一個更新事件裝入活動的自動重裝載寄存器周期的值
TIM_TimebaseStructure.TIM_Prescaler?=PrescalerValue;?//設置用來作為TIMx時鐘頻率除數的預分頻值?設置計數頻率為10kHz
TIM_TimebaseStructure.TIM_ClockDivision?=?TIM_CKD_DIV1;?//設置時鐘分割:TDTS?=?Tck_tim
TIM_TimebaseStructure.TIM_CounterMode?=?TIM_CounterMode_Up;??//TIM向上計數模式
TIM_TimebaseInit(TIM7?&TIM_TimebaseStructure);?//根據TIM_TimebaseInitStruct中指定的參數初始化TIMx的時間基數單位

TIM_ClearFlag(TIM7?TIM_FLAG_Update);
TIM_ClearITPendingBit(TIM7?TIM_IT_Update);
TIM_SetCounter(TIM70x0000);
TIM_ITConfig(?TIM7TIM_IT_UpdateDISABLE);//TIM7?不允許更新中斷
TIM_Cmd(TIM7?ENABLE);?

//TIM7中斷分組配置
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);?????????????//配置NVIC中斷優先級編組
NVIC_InitStructure.NVIC_IRQChannel?=TIM7_IRQn;??????????????//TIM7中斷
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority?=?0;???//先占優先級0級
NVIC_InitStructure.NVIC_IRQChannelSubPriority?=?1;??????????//從優先級0級
NVIC_InitStructure.NVIC_IRQChannelCmd?=?ENABLE;?????????????//IRQ通道被使能
NVIC_Init(&NVIC_InitStructure);?????????????????????????????//根據NVIC_InitStruct中指定的參數初始化外設NVIC寄存器?
}

void?Master_Init(unsigned?long?ulBaudRate)
{
GPIO_InitTypeDef?GPIO_InitStructure;

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC|
RCC_APB2Periph_GPIOE|
RCC_APB2Periph_AFIOENABLE);
RCC_LSEConfig(RCC_LSE_OFF); //關閉外部低速外部時鐘信號功能后,PC13

GPIO_InitStructu

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????3782??2017-03-01?23:07??Modbus\crc16.h

?????文件??????10767??2018-05-23?14:48??Modbus\ModbusMaster.c

?????文件???????1150??2018-05-08?16:55??Modbus\ModbusMaster.h

?????目錄??????????0??2018-05-23?14:48??Modbus

-----------?---------??----------?-----??----

????????????????15699????????????????????4


評論

共有 條評論