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

標題: STM32f429 CAN雙機測試源碼 [打印本頁]

作者: zynzm    時間: 2018-3-23 15:28
標題: STM32f429 CAN雙機測試源碼
高難度實用程序代碼
分享給小伙伴
共同進步,不斷學習,會繼續研究103系列和傳感器通信
感謝平臺

/*********************************************************************************************/
【*】程序簡介
-工程名稱:CAN—雙機通訊
-MDK版本:5.16
-ST固件庫版本:1.5.1

【 !】功能簡介:
使用CAN在兩個開發板之間通信。
學習目的:學會使用CAN通信。

【 !!】注意事項:
接口:CAN-H  CAN-L
跳線帽:使用跳線帽連接 C/4-5V<--->5V (出廠默認沒有連接跳線帽,實驗前請先連接!!!)。

連接 C/4-5V<--->5V后,由于CAN芯片供電,它的PB8/PB9引腳與液晶數據引腳共用,
會干擾液晶屏,液晶屏顏色會畸變。

CAN波特率1MHz, 報文使用擴展ID,報文濾波,只接收0x1314 EXID的報文。

【 !】實驗操作:
若使用兩個秉火開發板進行實驗,使用線連接兩個板子的CAN-H,CAN-L(H與H相連,L與L相連)。
然后兩個開發板都下載本程序。

電腦端使用串口調試助手,選擇電腦與STM32相連的COM口,設置為115200-N-8-1,
復位開發板,即可接收STM32串口發送給電腦的調試信息。

準備好后,按下其中一個開發板的KEY1鍵,會使用CAN向外發送0-255的數字。
若開發板的CAN接收到256個字節數據,會把數據以16進制形式打印出來。

/*********************************************************************************************/
【*】 引腳分配
CAN芯片
CAN芯片的電源引腳與排針相連,通過跳線帽STM32的串口相連。(出廠默認沒有連接跳線帽)
    5V        <--->C/4-5V  (可通過跳線帽連接到5v)   
    RXD        <--->PB8     
    TXD        <--->PB9     
   
串口(TTL-USB TO USART):
CH340的收發引腳與STM32的發收引腳相連。
    RX<--->PA9
    TX<--->PA10
   
/*********************************************************************************************/

【*】 時鐘

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

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

C.浮點運算單元:
  不使用

STM32f429單片機源程序如下:
  1. /**
  2.   ******************************************************************************
  3.   * @file    main.c
  4.   * @author  fire
  5.   * @version V1.0
  6.   * @brief   CAN通訊實驗
  7.   ******************************************************************************
  8.   * @attention
  9.   ******************************************************************************
  10.   */
  11.   
  12. #include "stm32f4xx.h"
  13. #include "./led/bsp_led.h"
  14. #include "./usart/bsp_debug_usart.h"
  15. #include "./can/bsp_can.h"
  16. #include "./key/bsp_key.h"

  17. __IO uint32_t flag = 0;                 //用于標志是否接收到數據,在中斷函數中賦值
  18. CanTxMsg TxMessage;                             //發送緩沖區
  19. CanRxMsg RxMessage;                                 //接收緩沖區

  20. /// 不精確的延時
  21. static void can_delay(__IO u32 nCount)
  22. {
  23.         for(; nCount != 0; nCount--);
  24. }

  25. /**
  26.   * @brief  主函數
  27.   * @param  無
  28.   * @retval 無
  29.   */
  30. int main(void)
  31. {
  32.        
  33.         LED_GPIO_Config();
  34.        
  35.   /*初始化USART1*/
  36.   Debug_USART_Config();
  37.        
  38.         /*初始化按鍵*/
  39.         Key_GPIO_Config();

  40.         /*初始化can,在中斷接收CAN數據包*/
  41.         CAN_Config();
  42.        
  43.         printf("\r\n 歡迎使用秉火  STM32 F429 開發板。\r\n");
  44.   printf("\r\n 秉火F429 CAN通訊實驗例程\r\n");
  45.        
  46.         printf("\r\n 實驗步驟:\r\n");

  47.         printf("\r\n 1.使用導線連接好兩個CAN訊設備\r\n");
  48.         printf("\r\n 2.使用跳線帽連接好:5v --- C/4-5V \r\n");
  49.         printf("\r\n 3.按下開發板的KEY1鍵,會使用CAN向外發送0-7的數據包,包的擴展ID為0x1314 \r\n");
  50.         printf("\r\n 4.若開發板的CAN接收到擴展ID為0x1314的數據包,會把數據以打印到串口。 \r\n");
  51.         printf("\r\n 5.本例中的can波特率為1MBps,為stm32的can最高速率。 \r\n");

  52.   while(1)
  53.         {
  54.                 /*按一次按鍵發送一次數據*/
  55.                 if(        Key_Scan(KEY1_GPIO_PORT,KEY1_PIN) == KEY_ON)
  56.                 {
  57.                         LED_BLUE;
  58.                         CAN_SetMsg(&TxMessage);
  59.                        
  60.                         CAN_Transmit(CANx, &TxMessage);
  61.                        
  62.                         can_delay(10000);//等待發送完畢,可使用CAN_TransmitStatus查看狀態
  63.                        
  64.                         LED_GREEN;
  65.                        
  66.                         printf("\r\n已使用CAN發送數據包!\r\n");                        
  67.                         printf("\r\n發送的報文內容為:\r\n");
  68.                         printf("\r\n 擴展ID號ExtId:0x%x \r\n",TxMessage.ExtId);
  69.                         CAN_DEBUG_ARRAY(TxMessage.Data,8);


  70.                 }
  71.                 if(flag==1)
  72.                 {               
  73.                         LED_GREEN;
  74.                         printf("\r\nCAN接收到數據:\r\n");       

  75.                         CAN_DEBUG_ARRAY(RxMessage.Data,8);
  76.                        
  77.                         flag=0;
  78.                 }
  79.        
  80.        
  81.         }

  82. }



  83. /*********************************************END OF FILE**********************/

復制代碼

所有資料51hei提供下載:
CAN—雙機通訊.zip (559.47 KB, 下載次數: 88)



作者: yehchanghung    時間: 2018-11-21 11:08
請問這是適用STM32F429ZI-DISC1的開發板用嗎?
作者: yehchanghung    時間: 2018-11-21 11:10
請問這程式適用STM32F429ZI-DISC1開發板嗎?
作者: abcyudqqa1    時間: 2018-12-3 15:06
正需要STM32F429 CAN總線設置例程,文件里不知道有沒有包含CAN初始化,先頂個貼
作者: abcyudqqa1    時間: 2018-12-3 15:07
正需要STM32F429 CAN總線初始化例程,不知道資料里面有沒有,先頂個帖




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久操伊人| 欧美一级片在线播放 | 黄色在线观看网址 | 黄色一级在线观看 | 日韩理论在线 | 成人免费小视频 | 在线播放一区 | 成人久久av | 日韩中文字幕在线观看 | 久久久久91| 丁香婷婷色 | 色女人影院 | 成人一区二区三区 | 国产在线视频一区 | 日韩欧美国产精品 | 久久在线精品 | 国产乱码一区二区 | 成人免费毛片aaaaaa片 | 日韩天堂在线 | 国产超碰在线 | 在线观看视频一区 | 国产精品一区二区免费 | 天天爽夜夜爽夜夜爽精品视频 | 手机看片在线 | 99视频网 | 亚洲人精品 | 婷婷中文网 | 日韩欧美视频 | 久久亚洲综合 | 国产女人高潮视频 | 日韩精品免费在线观看 | 亚洲激情在线视频 | 91亚洲国产| 99精品在线观看 | 天堂资源| 在线看亚洲 | 久久av资源 | 日韩a视频 | 国产伦精品一区二区三区视频网站 | 一区二区日韩 | 精品久久久久久久久久久久 |