欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
stm32f429 CAN回環測試源碼
[打印本頁]
作者:
zynzm
時間:
2018-3-23 15:26
標題:
stm32f429 CAN回環測試源碼
stm32f429 CAN回環測試,共同進步學習,感謝平臺,會多多學不斷進步
【*】程序簡介
-工程名稱:CAN—回環測試
-MDK版本:5.16
-ST固件庫版本:1.5.1
【 !】功能簡介:
使用CAN回環模式進行通訊實驗。
學習目的:學會使用CAN通信。
【 !!】注意事項:
本實驗是回環測試,開發板只是向自己發送數據,不經過CAN芯片,也不能把數據發送給外部主機。
需要雙機通訊請參考“CAN-雙機通訊”實驗。
【 !】實驗操作:
電腦端使用串口調試助手,選擇電腦與STM32相連的COM口,設置為115200-N-8-1,
復位開發板,即可接收STM32串口發送給電腦的調試信息。
給開發板下載本程序,按下開發板的KEY1鍵,會使用CAN 回環發送0-255的數字。
若開發板的CAN接收到256個字節數據,會把數據以16進制形式打印出來。
/*********************************************************************************************/
【*】 引腳分配
(回環測試不經過CAN芯片,可不用管這部分)
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.浮點運算單元:
不使用
單片機源程序如下:
/**
******************************************************************************
* @file main.c
* @author fire
* @version V1.0
* @brief CAN通訊實驗(回環模式)
******************************************************************************
* @attention
#include "stm32f4xx.h"
#include "./led/bsp_led.h"
#include "./usart/bsp_debug_usart.h"
#include "./can/bsp_can.h"
#include "./key/bsp_key.h"
__IO uint32_t flag = 0; //用于標志是否接收到數據,在中斷函數中賦值
CanTxMsg TxMessage; //發送緩沖區
CanRxMsg RxMessage; //接收緩沖區
/// 不精確的延時
static void can_delay(__IO u32 nCount)
{
for(; nCount != 0; nCount--);
}
/**
* @brief 主函數
* @param 無
* @retval 無
*/
int main(void)
{
LED_GPIO_Config();
/*初始化USART1*/
Debug_USART_Config();
/*初始化按鍵*/
Key_GPIO_Config();
/*初始化can,在中斷接收CAN數據包*/
CAN_Config();
printf("\r\n 歡迎使用秉火 STM32 F429 開發板。\r\n");
printf("\r\n 秉火F429 CAN通訊回環實驗例程\r\n");
printf("\r\n 實驗步驟:\r\n");
printf("\r\n 1.使用回環模式,不需要連接外部芯片\r\n");
printf("\r\n 2.按下開發板的KEY1鍵,會使用CAN向外發送0-7的數據包,包的擴展ID為0x1314 (由于回環模式,是自己發送給自己)\r\n");
printf("\r\n 3.若開發板的CAN接收到擴展ID為0x1314的數據包,會把數據以打印到串口。 \r\n");
printf("\r\n 4.本例中的can波特率為1MBps,為stm32的can最高速率。 \r\n");
while(1)
{
/*按一次按鍵發送一次數據*/
if( Key_Scan(KEY1_GPIO_PORT,KEY1_PIN) == KEY_ON)
{
LED_BLUE;
CAN_SetMsg(&TxMessage);
CAN_Transmit(CANx, &TxMessage);
can_delay(10000);//等待發送完畢,可使用CAN_TransmitStatus查看狀態
LED_GREEN;
printf("\r\n已使用CAN發送數據包!\r\n");
printf("\r\n發送的報文內容為:\r\n");
printf("\r\n 擴展ID號ExtId:0x%x \r\n",TxMessage.ExtId);
CAN_DEBUG_ARRAY(TxMessage.Data,8);
}
if(flag==1)
{
LED_GREEN;
printf("\r\nCAN接收到數據:\r\n");
CAN_DEBUG_ARRAY(RxMessage.Data,8);
flag=0;
}
}
}
/*********************************************END OF FILE**********************/
復制代碼
所有資料51hei提供下載:
CAN—回環測試.zip
(559.33 KB, 下載次數: 58)
2018-3-23 15:24 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1