欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    (完整word版)STM32的485最简单例程.pdf

    • 资源ID:55052001       资源大小:15.29KB        全文页数:7页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    (完整word版)STM32的485最简单例程.pdf

    485 最基本的半双工通信配置采用 STM32F103ZET6串口 3 连接 485 芯片通信口,485 芯片的 A,B 通过 485 转串口模块与电脑相连,完成在串口软件上输入输出功能。串口 3,配置函数:void USART3_Config(void)GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);/USART3_TX-PB10,USART3_RX-PB11GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);USART_InitStructure.USART_BaudRate=115200;/1200;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No;/USART_Parity_Even;USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;USART_Init(USART3,&USART_InitStructure);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_InitStructure.NVIC_IRQChannel=USART3_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);#ifdef PDU_USART3_DMAUSART_ITConfig(USART3,USART_IT_IDLE,ENABLE);#else/Enable the USART Receive interrupt:this interrupt is generated when the/USART3 receive data register is not empty/USART_ClearITPendingBit(USART3,USART_IT_TC);USART_ClearFlag(USART3,USART_FLAG_TC);USART_ITConfig(USART3,USART_IT_RXNE,ENABLE);USART_ITConfig(USART3,USART_IT_TC,ENABLE);/USART_ITConfig(USART3,USART_IT_TXE,ENABLE);USART_ClearFlag(USART3,USART_FLAG_TC);#endif USART_Cmd(USART3,ENABLE);USART_ClearFlag(USART3,USART_FLAG_TC);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE|RCC_APB2Periph_AFIO,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOE,&GPIO_InitStructure);RS_485_TX_ENABLE();PUTCHAR_PROTOTYPE/*Place your implementation of fputc here*/*e.g.write a character to the USART*/USART_SendData(USART3,(uint8_t)ch);/USART_SendData(USART1,(uint8_t)ch);/*Loop until the end of transmission*/while(USART_GetFlagStatus(USART1,USART_FLAG_TC)=RESET)while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)=RESET)return ch;中断函数:void USART3_IRQHandler(void)if(USART_GetITStatus(USART3,USART_IT_IDLE)!=RESET)USART_ClearITPendingBit(USART3,USART_IT_IDLE);if(USART_GetFlagStatus(USART3,USART_FLAG_RXNE)!=RESET)USART_ClearFlag(USART3,USART_FLAG_RXNE);TIM3_Init(1000,7200);BLUE_ON();if(cnt=32)cnt=0;elsedatacnt=USART_ReceiveData(USART3);cnt+;if(USART_GetITStatus(USART3,USART_IT_TC)!=RESET)|(USART_GetITStatus(USART3,USART_IT_TXE)!=RESET)USART_ClearITPendingBit(USART3,USART_IT_TC);USART_ClearITPendingBit(USART3,USART_IT_TXE);/USART_SendData(USART3,0XFFFF);void TIM3_IRQHandler(void)if(TIM_GetITStatus(TIM3,TIM_IT_Update)!=RESET)TIM_ClearITPendingBit(TIM3,TIM_IT_Update);TIM3_DeInit();BLUE_OFF();/printf(rn%x,cnt);cnt=0;static void NVIC_TIM3Configuration(void)NVIC_InitTypeDef NVIC_InitStructure;/*Set the Vector Table base address at 0 x08000000*/NVIC_SetVectorTable(NVIC_VectTab_FLASH,0 x0000);/*Enable the TIM3 gloabal Interrupt*/NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);定时器:void TIM3_Init(uint16_t tcon,uint16_t psc)TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;/TIM3 clock enableRCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);/reset timerTIM_DeInit(TIM3);/Time base configuration/value to reloadTIM_TimeBaseStructure.TIM_Period=(tcon-1);/pre-scaler value against system clockTIM_TimeBaseStructure.TIM_Prescaler=(psc-1);/scaler value against system clockTIM_TimeBaseStructure.TIM_ClockDivision=0;/counting modeTIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;/init timerTIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);/Clear TIM3 update pending flagTIM_ClearITPendingBit(TIM3,TIM_IT_Update);/TIM IT enable of over-countingTIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);/config timers interruption functionNVIC_TIM3Configuration();/Enable TIM3 counterTIM_Cmd(TIM3,ENABLE);void TIM3_DeInit(void)/Disable TIM3 counterTIM_Cmd(TIM3,DISABLE);/Reset timerTIM_DeInit(TIM3);/Disable TIM3 clockRCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,DISABLE);/tim3_stat=0 x00;主函数:#ifdef _GNF_#ifdef _GNUC_/*With GCC/RAISONANCE,small printf(option LD Linker-Libraries-Small printfset to Yes)calls _io_putchar()*/#define PUTCHAR_PROTOTYPE int _io_putchar(int ch)#else#define PUTCHAR_PROTOTYPE int fputc(int ch,FILE*f)#endif/*_GNUC_*/#endif/*_GNF_*/void Delay(uint32_t tick)while(tick-);/*Private function prototypes-*/extern unsigned char datasize;extern volatile unsigned char cnt;/*Function Name:main*Description:Main program*Input:None*Output:None*Return:None*Attention:None*/int main(void)/*USART configuration*/USART3_Config();RED_ON();BLUE_ON();GREEN_ON();Delay(100000);BLUE_OFF();RED_OFF();GREEN_OFF();/*Infinite loop*/while(1)uint8_t i=0;RS_485_TX_ENABLE();printf(rn up up day!);for(i=0;i50;i+)GREEN_ON();Delay(500000);GREEN_OFF();Delay(500000);RS_485_RX_ENABLE();while(data0=0 x00)RED_ON();Delay(500000);RED_OFF();Delay(500000);memset(data,0,size);

    注意事项

    本文((完整word版)STM32的485最简单例程.pdf)为本站会员(Q****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开