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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2552|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于兩個(gè)STM32 MINI板的RS485通訊程序 不分主從

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:700421 發(fā)表于 2020-3-1 11:12 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
stm32-mini版S485通信

單片機(jī)源程序如下:
  1. /***************************************
  2. * 文件名  :main.c
  3. * 描述    :給相同兩個(gè)MINI板下載此程序后,按下一個(gè)板子上的按鍵,可以點(diǎn)亮另一個(gè)板子
  4. *           上對(duì)應(yīng)的LED。兩個(gè)板子不分主從。         
  5. * 實(shí)驗(yàn)平臺(tái):MINI STM32開(kāi)發(fā)板 基于STM32F103RBT6
  6. * 庫(kù)版本  :ST3.0.0                                                                                                                                                                                                                     
  7. *********************************************************/

  8. #include "stm32f10x.h"
  9. #include "usart1.h"
  10. #include "led.h"


  11. void Delay(vu32 nCount)
  12. {
  13.   for(; nCount != 0; nCount--);
  14. }
  15. /*按鍵管腳初始化*/
  16. void KeyInit(void)
  17. {
  18.         GPIO_InitTypeDef GPIO_InitStructure;

  19.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//使能外設(shè)時(shí)鐘
  20.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//使能外設(shè)時(shí)鐘

  21.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_15 ;
  22.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; //最高輸出速率10MHz
  23.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉輸入
  24.         GPIO_Init(GPIOB, &GPIO_InitStructure);

  25.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
  26.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; //最高輸出速率10MHz
  27.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//上拉輸入
  28.         GPIO_Init(GPIOA, &GPIO_InitStructure);
  29. }
  30. /*檢測(cè)是否有按鍵按下*/
  31. void  GetKey(void)
  32. {
  33.         if(Bit_RESET == GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8))
  34.         {
  35.                 Delay(1000000);//去抖動(dòng)
  36.                 if(Bit_RESET == GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8))
  37.                 {
  38.                         while(Bit_RESET == GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8)){ ; }//等待按鍵釋放
  39.                        RS485_SendByte(0X03);
  40.                                            LED1(1);LED2(1);LED3(1);
  41.                 }
  42.         }

  43.         if(Bit_RESET == GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_15))
  44.         {
  45.                 Delay(1000000);//去抖動(dòng)//去抖動(dòng)
  46.                 if(Bit_RESET == GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_15))
  47.                 {
  48.                         while(Bit_RESET == GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_15)){ ; }//等待按鍵釋放                        
  49.                         RS485_SendByte(0X02);
  50.                                                 LED1(1);LED2(1);LED3(1);
  51.                 }
  52.         }

  53.         if(Bit_RESET == GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1))
  54.         {
  55.                  Delay(1000000);//去抖動(dòng)//去抖動(dòng)
  56.                 if(Bit_RESET == GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1))
  57.                 {
  58.                         while(Bit_RESET == GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1)){ ; }//等待按鍵釋放                        
  59.                         RS485_SendByte(0X01);       
  60.                                                 LED1(1);LED2(1);LED3(1);
  61.                 }
  62.         }   

  63.       
  64. }
  65. /*USART3 接收中斷配置 */
  66. void NVIC_Configuration(void)
  67. {   
  68.   NVIC_InitTypeDef NVIC_InitStructure;

  69.   /* Configure the NVIC Preemption Priority Bits */  
  70.   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

  71.   
  72.   /* Enable the USART1 Interrupt */
  73.   NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;
  74.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  75.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  76.   NVIC_Init(&NVIC_InitStructure);

  77.   
  78. }


  79. int main(void)
  80. {         
  81.         SystemInit();//配置系統(tǒng)時(shí)鐘為 72M
  82.         KeyInit();        //按鍵管腳初始化
  83.         LED_GPIO_Config(); //LED管腳初始化
  84.         NVIC_Configuration();//USART3 接收中斷配置
  85.         USART3_int(); //USART1 配置               

  86.   while (1)
  87.   {         
  88.     GetKey(); //檢測(cè)是否有按鍵按下
  89.   }
  90. }
復(fù)制代碼

所有資料51hei提供下載:
高級(jí)例程-基于兩個(gè)MINI板的RS485通訊.7z (139.37 KB, 下載次數(shù): 42)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久久久久久久一区二区 | 中文字幕一级 | 日韩在线不卡 | 国产精品一卡 | 午夜激情小视频 | 国产精品久久久久久久久久久久久久 | 99久久精品一区二区成人 | 亚洲午夜网 | 在线一区二区三区 | 美国一级毛片a | 国产 亚洲 网红 主播 | 在线免费观看黄色 | 国产成人一区二区三区 | 精品国产乱码久久久久久88av | 91久久久久久久 | 一区二区三区欧美在线 | 国产黄色大片 | 成人在线观看免费 | 久久久久九九九女人毛片 | 在线黄av | 亚洲精品一区二区在线观看 | 午夜丰满寂寞少妇精品 | 亚洲精品久久久9婷婷中文字幕 | 国产欧美一级 | 一区观看 | www.av在线| 草久网| 亚洲3级 | 欧美视频在线播放 | 久久成人免费 | 欧美成人免费在线视频 | 国产一区二区欧美 | 男女羞羞免费视频 | 欧美亚州 | 韩国久久精品 | 久久国产精品99久久久大便 | 九九九久久国产免费 | 九九久视频 | 中文字幕在线观看一区 | 日韩视频精品在线 | 人成在线视频 |