久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4693|回復: 4
打印 上一主題 下一主題
收起左側

STM32F427的TP8485芯片RS485和PC通信源程序

[復制鏈接]
跳轉到指定樓層
樓主
親測有效,同PC間通信。
【*】 程序簡介
-工程名稱:工程模版
-實驗平臺: STM32F427 同步控制器
-MDK版本:
-ST固件庫版本:

【*】 時鐘

A.晶振:
-外部高速晶振:25MHz
-RTC晶振:32.768KHz

B.各總線運行時鐘:
-系統時鐘 = SYCCLK = AHB1 = 180MHz
-APB2 = 90MHz
-APB1 = 45MHz

C.浮點運算單元:
  使能

單片機源程序如下:
  1. #include "stm32f4xx.h"
  2. #include "stm32f4xx_usart.h"
  3. uint8_t rx_flag=0;
  4. uint8_t rx_buff[100]={0x00,0x00};
  5. uint8_t i=0,j=0;
  6. uint8_t n=5;


  7. void USART_INIT(void);
  8. void nvic_configuration(void);
  9. int main(void)
  10. {       
  11.         USART_INIT();
  12.         GPIO_SetBits(GPIOA, GPIO_Pin_6);       
  13.         USART_SendData(USART2, 66);
  14.         while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET);
  15.         USART_SendData(USART2, 67);
  16.         while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET);
  17.         GPIO_ResetBits(GPIOA, GPIO_Pin_6);       
  18.   while(1)
  19.         {
  20.                 if(rx_flag==1)
  21.                 {                       
  22.                         rx_buff[i++]=USART_ReceiveData(USART2);
  23.                         rx_flag=0;
  24.                 }
  25.                 if(i==n)
  26.                 {
  27.                         GPIO_SetBits(GPIOA, GPIO_Pin_6);
  28.                         i=0;
  29.                         for(j=0;j<n;j++)
  30.                         {                                       
  31.                                 USART_SendData(USART2, rx_buff[j]);
  32.                                 while(USART_GetFlagStatus(USART2,  USART_FLAG_TC)==RESET);
  33.                         }
  34.                         GPIO_ResetBits(GPIOA, GPIO_Pin_6);       
  35.                 }
  36.                
  37.         }
  38. }
  39. void USART_INIT(void)
  40. {
  41. //        GPIO initiallize
  42.         GPIO_InitTypeDef GPIO_InitStructure;
  43.        
  44.         RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOA ,ENABLE); //使能外設時鐘AHB1                                                                                                         
  45.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;           //        A6   control singal        
  46.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;   //實際上就是推挽輸出
  47.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  48.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
  49.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
  50.         GPIO_Init(GPIOA, &GPIO_InitStructure);
  51.         GPIO_ResetBits(GPIOA, GPIO_Pin_6);       

  52.         GPIO_PinAFConfig(GPIOA,GPIO_PinSource2,GPIO_AF_USART2); //GPIOA2復用為USART2
  53.         GPIO_PinAFConfig(GPIOA,GPIO_PinSource3,GPIO_AF_USART2); //GPIOA3復用為USART2       
  54.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 |GPIO_Pin_3 ;  //Tx and Rx         
  55.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;     //alternate function
  56.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  57.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  58.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; //low rate
  59.         GPIO_Init(GPIOA, &GPIO_InitStructure);
  60.        
  61.         ////USART initiallize
  62.         USART_InitTypeDef usart_2_initstructure;
  63.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);//使能USART2時鐘 掛載在APB1外設時鐘上
  64.        
  65.         usart_2_initstructure.USART_BaudRate=9600;
  66.         usart_2_initstructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
  67.         usart_2_initstructure.USART_Mode=USART_Mode_Rx |USART_Mode_Tx;
  68.         usart_2_initstructure.USART_Parity=USART_Parity_No;
  69.         usart_2_initstructure.USART_StopBits=USART_StopBits_1;
  70.         usart_2_initstructure.USART_WordLength=USART_WordLength_8b;
  71.         USART_Init(USART2, &usart_2_initstructure);  
  72.   USART_Cmd(USART2, ENABLE);  //使能串口2
  73.        
  74.         //some flags and IT
  75.         USART_ClearFlag(USART2, USART_FLAG_TC);  //clear transmit flag               
  76.        
  77.         nvic_configuration();
  78.         USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);//開啟相關中斷
  79. }
  80. //內嵌中斷向量控制器config
  81. void nvic_configuration()
  82. {
  83.                 //NVIC config and initiallize
  84.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
  85.         NVIC_InitTypeDef NVIC_InitStructure;
  86.        
  87.         NVIC_InitStructure.NVIC_IRQChannel=USART2_IRQn;
  88.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
  89.         NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
  90.         NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE ;
  91.         NVIC_Init(&NVIC_InitStructure);       
  92. }
  93. void USART2_IRQHandler()
  94. {
  95.         if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
  96.         {
  97. //                        rx_buff[i++]=USART_ReceiveData(USART2);
  98.                 rx_flag=1;
  99.                 USART_ClearFlag(USART2, USART_FLAG_RXNE);
  100.         }
  101. }
復制代碼

所有資料51hei提供下載:
F427_USART2_485.rar (612.81 KB, 下載次數: 38)




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

使用道具 舉報

沙發
ID:383558 發表于 2018-12-1 15:42 | 只看該作者
可以找我要硬件電路圖
回復

使用道具 舉報

板凳
ID:1 發表于 2018-12-1 17:26 | 只看該作者
圖紙能上傳下嗎?點高級模式即可
回復

使用道具 舉報

地板
ID:163323 發表于 2018-12-1 20:40 | 只看該作者
多謝了,我正要找的
回復

使用道具 舉報

5#
ID:383558 發表于 2018-12-9 16:22 | 只看該作者
admin 發表于 2018-12-1 17:26
圖紙能上傳下嗎?點高級模式即可

不知截圖是否可以
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级黄色片在线看 | 久久精品16 | 日韩欧美三级电影在线观看 | 国产一级影片 | 精品国产一级 | 欧美精品一区二区三区在线播放 | 一区二区免费在线 | 精品免费国产一区二区三区四区介绍 | 一区二区三区四区在线 | 欧美精品乱码久久久久久按摩 | 国产精品91网站 | 久久久久久久一区 | 国产精品视频不卡 | 人人干人人干人人 | 亚洲a在线视频 | 国产精品不卡 | 精品美女 | 国产网站在线播放 | www.黄色网| 三级黄色大片网站 | 国产精品久久久久久影院8一贰佰 | 国产成人在线视频播放 | 久久99精品国产 | 一级一片在线观看 | 日韩在线观看中文字幕 | 久久久久久黄 | 国产视频二区 | 日本黄色短片 | 亚洲视频第一页 | 视频二区在线观看 | 自拍偷拍亚洲一区 | 精品日韩在线 | 免费看欧美一级片 | 国产在线精品一区二区三区 | 精品久久久av| www.久草 | 亚洲综合成人网 | 91精品一区二区三区久久久久久 | 欧美成视频在线观看 | 麻豆一区一区三区四区 | 日韩中文字幕在线播放 |