STMCU小助手
发布时间:2022-6-26 11:29
|
首先要安装cubemx跟Keil5两个编程软件,然后打开cubemx软件,新建一个工程项目:
输入CPU型号:
在右下角双击CPU具体型号:
稍等片刻会打开如下对话框:
首先要配置系统的调试方式:我们选择SW方式,
然后配置晶振源,这里选择的是外部晶振,8M,
使能看门狗,
使能CAN,
使能TIM2时钟源,采用内部时钟,
配置完成后可以看到单片机管脚已经做了配置。
切换到Clock Configuration选项卡,配置时钟周期,这里配置为8M
切换到Configuration选项卡,进入CAN配置选项配置波特率如下为500Kbps。
配置接收中断。
配置定时器如下为1ms定时器。
配置定时器中断
配置完成后点击保存,然后点击如下按钮,生成代码
填写工程名称,路径,编程软件等等
选择生成代码的方式
等待…… 之后点击打开项目。代码生成部分完成。
添加一些特殊配置和逻辑代码,添加CAN的配置信息函数。
在Main函数中while(1)之前调用一下即可,添加定时器启动函数:
CAN接收中断启动函数:
打开stm32f1xx_it.c文件,找到如下函数,添加接收中断启动函数:
注意:接收中断启动函数使能一次只进一次中断,所以中断退出前要再次使能。
添加CAN接收服务函数:
说明:该函数在stm32f1xx_hal_can.c文件中已经有定义,它的定义方式如下:
函数前面的__weak关键字意思是如果有同样的定义,先执行没有__weak关键字的函数,所以当我们定义了HAL_CAN_RxCpltCallback函数后,编译器会先编译我们定义的函数,而忽略系统定义的该函数。当我们没有定义该函数时,系统会编译带有__weak关键字的函数。
添加CAN发送函数:
在定时器函数中添加定时器代码:
说明:在往工程中添加代码时要注意,不要任意往里面添加代码,要在注释着USER CODE BEGIN的地方添加代码,这样在重新生成代码时才不至于将已经写好的代码覆盖掉,如下
|
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
一个软件引起的 LSE 驱动不良的问题
STM32 GUI LTDC 最大像素时钟评估方法
微信公众号
手机版