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

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

QQ登錄

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

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

stm32f429 CAN回環(huán)測(cè)試源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:295978 發(fā)表于 2018-3-23 15:26 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
stm32f429 CAN回環(huán)測(cè)試,共同進(jìn)步學(xué)習(xí),感謝平臺(tái),會(huì)多多學(xué)不斷進(jìn)步

【*】程序簡(jiǎn)介
-工程名稱(chēng):CAN—回環(huán)測(cè)試
-MDK版本:5.16
-ST固件庫(kù)版本:1.5.1

【 !】功能簡(jiǎn)介:
使用CAN回環(huán)模式進(jìn)行通訊實(shí)驗(yàn)。
學(xué)習(xí)目的:學(xué)會(huì)使用CAN通信。

【 !】注意事項(xiàng):
本實(shí)驗(yàn)是回環(huán)測(cè)試,開(kāi)發(fā)板只是向自己發(fā)送數(shù)據(jù),不經(jīng)過(guò)CAN芯片,也不能把數(shù)據(jù)發(fā)送給外部主機(jī)。
需要雙機(jī)通訊請(qǐng)參考“CAN-雙機(jī)通訊”實(shí)驗(yàn)。

【 !】實(shí)驗(yàn)操作:

電腦端使用串口調(diào)試助手,選擇電腦與STM32相連的COM口,設(shè)置為115200-N-8-1,
復(fù)位開(kāi)發(fā)板,即可接收STM32串口發(fā)送給電腦的調(diào)試信息。

給開(kāi)發(fā)板下載本程序,按下開(kāi)發(fā)板的KEY1鍵,會(huì)使用CAN 回環(huán)發(fā)送0-255的數(shù)字。
若開(kāi)發(fā)板的CAN接收到256個(gè)字節(jié)數(shù)據(jù),會(huì)把數(shù)據(jù)以16進(jìn)制形式打印出來(lái)。

/*********************************************************************************************/

【*】 引腳分配
(回環(huán)測(cè)試不經(jīng)過(guò)CAN芯片,可不用管這部分)
CAN芯片
CAN芯片的電源引腳與排針相連,通過(guò)跳線(xiàn)帽STM32的串口相連。(出廠(chǎng)默認(rèn)沒(méi)有連接跳線(xiàn)帽)
    5V        <--->C/4-5V  (可通過(guò)跳線(xiàn)帽連接到5v)   
    RXD        <--->PB8     
    TXD        <--->PB9     
   

串口(TTL-USB TO USART):
CH340的收發(fā)引腳與STM32的發(fā)收引腳相連。
    RX<--->PA9
    TX<--->PA10
   
/*********************************************************************************************/

【*】 時(shí)鐘

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

B.各總線(xiàn)運(yùn)行時(shí)鐘:
-系統(tǒng)時(shí)鐘 = SYCCLK = AHB1 = 180MHz
-APB2 = 90MHz
-APB1 = 45MHz

C.浮點(diǎn)運(yùn)算單元:
  不使用

單片機(jī)源程序如下:
  1. /**
  2.   ******************************************************************************
  3.   * @file    main.c
  4.   * @author  fire
  5.   * @version V1.0
  6.   * @brief   CAN通訊實(shí)驗(yàn)(回環(huán)模式)
  7.   ******************************************************************************
  8.   * @attention
  9.   
  10. #include "stm32f4xx.h"
  11. #include "./led/bsp_led.h"
  12. #include "./usart/bsp_debug_usart.h"
  13. #include "./can/bsp_can.h"
  14. #include "./key/bsp_key.h"

  15. __IO uint32_t flag = 0;                 //用于標(biāo)志是否接收到數(shù)據(jù),在中斷函數(shù)中賦值
  16. CanTxMsg TxMessage;                             //發(fā)送緩沖區(qū)
  17. CanRxMsg RxMessage;                                 //接收緩沖區(qū)

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

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

  38.         /*初始化can,在中斷接收CAN數(shù)據(jù)包*/
  39.         CAN_Config();
  40.        
  41.         printf("\r\n 歡迎使用秉火  STM32 F429 開(kāi)發(fā)板。\r\n");
  42.   printf("\r\n 秉火F429 CAN通訊回環(huán)實(shí)驗(yàn)例程\r\n");
  43.        
  44.         printf("\r\n 實(shí)驗(yàn)步驟:\r\n");

  45.         printf("\r\n 1.使用回環(huán)模式,不需要連接外部芯片\r\n");
  46.         printf("\r\n 2.按下開(kāi)發(fā)板的KEY1鍵,會(huì)使用CAN向外發(fā)送0-7的數(shù)據(jù)包,包的擴(kuò)展ID為0x1314 (由于回環(huán)模式,是自己發(fā)送給自己)\r\n");
  47.         printf("\r\n 3.若開(kāi)發(fā)板的CAN接收到擴(kuò)展ID為0x1314的數(shù)據(jù)包,會(huì)把數(shù)據(jù)以打印到串口。 \r\n");
  48.         printf("\r\n 4.本例中的can波特率為1MBps,為stm32的can最高速率。 \r\n");

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


  67.                 }
  68.                 if(flag==1)
  69.                 {               
  70.                         LED_GREEN;
  71.                         printf("\r\nCAN接收到數(shù)據(jù):\r\n");       

  72.                         CAN_DEBUG_ARRAY(RxMessage.Data,8);
  73.                        
  74.                         flag=0;
  75.                 }
  76.        
  77.        
  78.         }

  79. }



  80. /*********************************************END OF FILE**********************/

復(fù)制代碼

所有資料51hei提供下載:
CAN—回環(huán)測(cè)試.zip (559.33 KB, 下載次數(shù): 58)



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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91久久网站 | 国产福利在线 | 色视频在线免费观看 | 欧洲一区在线观看 | 国产视频一区在线 | 亚洲 欧美 日韩 精品 | 成人在线视频网 | 日韩一区在线播放 | 黄色网址大全在线观看 | 日韩手机在线视频 | 精品视频久久久久久 | 亚洲网址 | 在线观看黄免费 | 国产精品久久国产精品 | 成人三级视频 | 久久日韩粉嫩一区二区三区 | 天天干视频| 欧美精品久久久久 | 亚洲精品在线免费 | 91黄色片免费看 | 亚洲午夜精品视频 | 天堂中文字幕av | 日韩中文视频 | 欧美jizzhd精品欧美巨大免费 | 亚洲精品国产a久久久久久 午夜影院网站 | 国产精品视频网 | 精品一区二区三区av | 日韩欧美在线不卡 | 91正在播放 | 羞羞视频免费观看 | 91久久综合 | 成人亚洲一区 | 亚洲一区二区三区四区av | 国产高清视频 | 午夜影院在线观看 | 日韩亚洲一区二区 | 伊人网在线播放 | 久草www| 色av一区二区三区 | 久久久中文 | 国产成人高清在线观看 |