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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4553|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品久久久久久亚洲综合网 | 情侣av | 狠狠干夜夜草 | 国产一区二区三区在线 | 成人精品一区二区三区 | 毛片网站免费观看 | 天堂av中文在线 | 宅男噜噜噜66一区二区 | 成人在线视频免费播放 | 久热精品视频 | 国产网站在线播放 | 视频一区 亚洲 | 亚洲高清一区二区三区 | 亚洲欧美视频在线观看 | 国产精品婷婷 | 盗摄精品av一区二区三区 | 国产精品一区二区视频 | 亚洲草草视频 | 国产午夜精品理论片a大结局 | 日韩精品1区2区3区 国产精品国产成人国产三级 | 99re在线视频 | 成年人在线视频 | 亚洲一区二区三区在线播放 | 亚洲一区二区三区免费视频 | 中文在线一区二区 | 日韩一区二区三区四区五区六区 | 日本精品一区二区三区在线观看 | 一区亚洲 | 国产成人jvid在线播放 | 欧美日韩国产在线观看 | 九九色综合 | 中文天堂在线观看 | 亚洲综合久久精品 | 日本久久综合 | 一区二区三区中文字幕 | 久久久不卡网国产精品一区 | 国产精品夜色一区二区三区 | 亚洲精品一区二区三区蜜桃久 | 欧美国产日韩一区二区三区 | 在线观看黄色电影 | 日日操夜夜操天天操 |