当前位置: 首页 > news >正文

玉溪建设网站页面设计参考

玉溪建设网站,页面设计参考,小型静态网站是什么原因,网站开发具体工作有那些目录 STM32 CAN通讯实验 CAN硬件原理图 CAN外设原理图 TJA1050T硬件描述 实验线路图 回环实验 CAN头文件配置 CAN_GPIO_Config初始化 CAN初始化结构体 CAN筛选器结构体 接收中断优先级配置 接收中断函数 main文件 实验现象 补充 STM32 CAN通讯实验 CAN硬件原理图…目录 STM32 CAN通讯实验 CAN硬件原理图 CAN外设原理图 TJA1050T硬件描述 实验线路图 回环实验 CAN头文件配置 CAN_GPIO_Config初始化 CAN初始化结构体 CAN筛选器结构体 接收中断优先级配置 接收中断函数 main文件 实验现象 补充 STM32 CAN通讯实验 CAN硬件原理图 CAN外设原理图 野火STM32F103ZET6霸道板载原理图 我们的开发板没有使用GPIO外设的复用功能PA11和PA12而使用了重定义重映射功能PB8和PB9 TJA1050T硬件描述 实验线路图 图中为两个霸道开发板如果使用指南针开发板需要外接CAN收发器和电阻。 是否使用RX和TX引脚是根据实际情况来确认是否使用的。如果我们使用回环模式时在STM32芯片内部的CAN控制器的发送端和接收端就已经通过硬件逻辑连接起来了比如回环静默模式根本不用使用STM32的发送和接收引脚。甚至使用回环测试的时候CAN收发器就算不供电都可以工作。 回环实验 我们配置外设的GPIO功能时可以参考手册的外设GPIO功能配置 CAN头文件配置 #ifndef __BSP_CAN_H #define __BSP_CAN_H#include stm32f10x.h#define PASS_ID ((uint32_t)0x1314)#define CAN_TX_GPIO_PROT GPIOB #define CAN_TX_GPIO_PIN GPIO_Pin_9#define CAN_RX_GPIO_PORT GPIOB #define CAN_RX_GPIO_PIN GPIO_Pin_8#define CAN_GPIO_CLK RCC_APB2Periph_GPIOB/*信息输出*/ #define CAN_DEBUG_ON 1#define CAN_INFO(fmt,arg...) printf(-CAN-INFO- fmt\n,##arg) #define CAN_ERROR(fmt,arg...) printf(-CAN-ERROR- fmt\n,##arg) #define CAN_DEBUG(fmt,arg...) do{\if(CAN_DEBUG_ON)\printf(-CAN-DEBUG- [%d]fmt\n,__LINE__, ##arg);void CAN_Config(void) ; #endif /* __BSP_CAN_H */ CAN_GPIO_Config初始化 void CAN_GPIO_Config(void) {GPIO_InitTypeDef GPIO_InitStructure;/* 使能CAN时钟 */RCC_APB1PeriphClockCmd (RCC_APB1Periph_CAN1 , ENABLE );/* 使能CAN引脚相关的时钟 */RCC_APB2PeriphClockCmd ( CAN_GPIO_CLK|RCC_APB2Periph_AFIO, ENABLE );//使用PA8 9引脚的第二功能GPIO_PinRemapConfig (GPIO_Remap1_CAN1 ,ENABLE);/* 配置CAN的 引脚普通IO即可 */GPIO_InitStructure.GPIO_Pin CAN_TX_GPIO_PIN;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF_PP;GPIO_Init(CAN_TX_GPIO_PROT, GPIO_InitStructure);/* 配置CAN的 引脚普通IO即可 */GPIO_InitStructure.GPIO_Pin CAN_RX_GPIO_PIN;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode GPIO_Mode_IPU;GPIO_Init(CAN_RX_GPIO_PORT, GPIO_InitStructure);} PB8和PB9使用重映射功能 我们要使用GPIO_PinRemapConfig函数来使能PA8 9引脚的第二功能此外一定要记得开启相应的AFIO时钟否则第二功能是无法使用的。 CAN初始化结构体 void CAN_Mode_Config(void) {CAN_InitTypeDef CAN_InitTypeStruct;CAN_InitTypeStruct.CAN_ABOM ENABLE;CAN_InitTypeStruct.CAN_AWUM ENABLE;CAN_InitTypeStruct.CAN_Mode CAN_Mode_LoopBack;//CAN_Mode_Normal;//调试时建议使用回环模式调试完再改成NORMALCAN_InitTypeStruct.CAN_NART ENABLE; //错误重传CAN_InitTypeStruct.CAN_RFLM ENABLE;CAN_InitTypeStruct.CAN_TTCM DISABLE;CAN_InitTypeStruct.CAN_TXFP DISABLE; //按ID优先级发送//配置成1MbpsCAN_InitTypeStruct.CAN_BS1 CAN_BS1_5tq;CAN_InitTypeStruct.CAN_BS2 CAN_BS2_3tq;CAN_InitTypeStruct.CAN_SJW CAN_SJW_2tq;CAN_InitTypeStruct.CAN_Prescaler 4;CAN_Init(CAN1,CAN_InitTypeStruct);} 其中位时序及波特率按照下表配置 CAN筛选器结构体 void CAN_Filter_Config(void) {CAN_FilterInitTypeDef CAN_FilterInitTypeStruct;CAN_FilterInitTypeStruct.CAN_FilterActivation ENABLE;CAN_FilterInitTypeStruct.CAN_FilterFIFOAssignment CAN_Filter_FIFO0 ;CAN_FilterInitTypeStruct.CAN_FilterNumber 0;CAN_FilterInitTypeStruct.CAN_FilterScale CAN_FilterScale_32bit;CAN_FilterInitTypeStruct.CAN_FilterMode CAN_FilterMode_IdMask ;CAN_FilterInitTypeStruct.CAN_FilterIdHigh ((PASS_ID3 |CAN_Id_Extended |CAN_RTR_Data)0xFFFF0000)16;CAN_FilterInitTypeStruct.CAN_FilterIdLow ((PASS_ID3 |CAN_Id_Extended |CAN_RTR_Data)0xFFFF);CAN_FilterInitTypeStruct.CAN_FilterMaskIdHigh 0xFFFF;CAN_FilterInitTypeStruct.CAN_FilterMaskIdLow 0xFFFF; CAN_FilterInit(CAN_FilterInitTypeStruct);CAN_ITConfig (CAN1,CAN_IT_FMP0,ENABLE);} 其中假如我们要过滤的ID为0x1314 使用stm32f10x_can.h文件末尾定义的相关宏 由于使用的是32位筛选器且标识符掩码所以其中CAN_FilterIdHigh和CAN_FilterIdLow为我们过滤ID格式的高16位和低16位首先将ID号左移三位然后或上IDE、RTR位 CAN_FilterInitTypeStruct.CAN_FilterIdHigh ((PASS_ID3 |CAN_Id_Extended |CAN_RTR_Data)0xFFFF0000)16; CAN_FilterInitTypeStruct.CAN_FilterIdLow ((PASS_ID3 |CAN_Id_Extended |CAN_RTR_Data)0xFFFF); 而CAN_FilterMaskIdHigh和CAN_FilterMaskIdLow为要过滤的ID掩码全为1表示完全过滤 CAN_FilterInitTypeStruct.CAN_FilterMaskIdHigh 0xFFFF; CAN_FilterInitTypeStruct.CAN_FilterMaskIdLow 0xFFFF; 接收中断优先级配置 void CAN_NVIC_Config(void) {NVIC_InitTypeDef NVIC_InitStructure;/* 配置NVIC为优先级组1 */NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);NVIC_InitStructure.NVIC_IRQChannel USB_LP_CAN1_RX0_IRQn;/* 配置抢占优先级 */NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority 1;/* 配置子优先级 */NVIC_InitStructure.NVIC_IRQChannelSubPriority 1;/* 使能中断通道 */NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE;NVIC_Init(NVIC_InitStructure); }在标准库头文件中找到CAN接收数据中断源我们使用的是接收邮箱0所以选择USB_LP_CAN1_RX0_IRQn 使能中断放在CAN筛选器结构体配置中 接收中断函数 extern CanRxMsg CAN_Rece_Data; extern uint8_t flag;void USB_LP_CAN1_RX0_IRQHandler(void) {CAN_Receive(CAN1,CAN_FIFO0, CAN_Rece_Data); flag 1;} 要注意的是在CAN里我们设置完CAN_Receive(CAN1,CAN_FIFO0, CAN_Rece_Data);之后不需要手动清除接收标志该函数会自动清除。 flag用于在main函数中判断是否接收到数据从而做相应的应用处理 我们也可以再加个判断进一步确认接收数据的准确性 main文件 #include stm32f10x.h #include ./usart/bsp_usart.h #include ./led/bsp_led.h #include ./can/bsp_can.h #include ./key/bsp_key.h CanRxMsg CAN_Rece_Data; CanTxMsg CAN_Tran_Data;uint8_t flag 0;void Delay(__IO uint32_t nCount); /** 函数名main* 描述 主函数* 输入 无* 输出 无*/ int main(void) { LED_GPIO_Config();LED_BLUE;/* 配置串口为115200 8-N-1 */USART_Config();printf(\r\n 这是一个CAN通讯实验 \r\n);CAN_Config() ; Key_GPIO_Config();printf(\r\n 按KEY1按键发送数据\r\n);while(1){if( Key_Scan(KEY1_GPIO_PORT,KEY1_GPIO_PIN) KEY_ON ){uint8_t box;CAN_Tran_Data.StdId 0;CAN_Tran_Data.ExtId PASS_ID;CAN_Tran_Data.RTR CAN_RTR_Data;//使用数据帧CAN_Tran_Data.IDE CAN_Id_Extended ; //使用扩展帧CAN_Tran_Data.DLC 1;CAN_Tran_Data.Data[0] 10;box CAN_Transmit(CAN1,CAN_Tran_Data);while(CAN_TransmitStatus(CAN1,box) CAN_TxStatus_Failed);printf(\r\n 数据包发送完成\r\n); } if(flag 1){printf(\r\n接收到的数据%d\r\n,CAN_Rece_Data.Data[0]);flag 0;}else{}} }void Delay(__IO uint32_t nCount) {for(; nCount ! 0; nCount--); } 实验现象 补充 由于只有一个板子无法演示双机实验双机实验只需要将我们的回环实验中的回环模式换成正常模式然后将程序分别下载到两个开发板即可。 学完基础的CAN通讯协议之后如果想要今后从事CAN通讯相关工作比如工业、汽车领域我们还需要进一步学习一下CAN OPEN。
http://www.dnsts.com.cn/news/134786.html

相关文章:

  • 如何查看网站的访问量个人网站设计作品html
  • 网站上那些兼职网页怎么做建筑公司企业文化
  • 威海网站建设联系方式wordpress竖直导航栏
  • 手机网站建设 移商动力网页设计模板图片 作业
  • 南宁正规公众号网站建设推广2345浏览器导航大全下载
  • 我要发布文章到网站上推广 哪些网站最好现在免费的外贸平台有哪些
  • 给我一个网站2021建设网站中心
  • 广东省著名商标在什么网站做搭建局域网
  • 网站做会员系统中国人做暧暧视频网站
  • wordpress导入数据库后出现乱码网站seo搜索引擎优化案例
  • 多用户旅游网站开发黑龙江省建设教育网站查询
  • 网站页面组成做网站推广用自己维护吗
  • 网站建设的基本流程包括什么wordpress404页面模板
  • 网站建设买了服务器后怎么做典型的软件开发模型都有哪些
  • wordpress网站名称函数开封网络推广公司
  • 网站做服装那个平台好一点网站开发怎么样?
  • 有网站了怎么设计网页wordpress 上传svg
  • 视频网站开发视频公司网站应达到的功能
  • 网站建设要素哪个网站可以付费做淘宝推广
  • 手机网站怎么做才适合优化中英文双语的网站怎么建设
  • 高安网站找工作做面点事东莞本地的发布平台
  • 厦门网站建设公司排行榜logo制作免费软件下载
  • 专做宝宝辅食的网站网站推广策略的主要方式
  • 范湖网站建设哪家便宜免费空间服务器
  • 做平面设计买哪个素材网站会员企业网站如何部署
  • 内蒙古建设 招聘信息网站企业展示型网站建设方案
  • 找人做事的网站丰泰建设集团有限公司网站
  • 外贸网站建设行业发展电影网站logo设计
  • 深圳网站设计营销型搭建wordpress站点
  • 珠海建设工程信息网站自助建站系