如何利用stm32cubemx中文手册进行STM32开发

【STM32CubeF4教程】第三期:使用STM32CubeMX生成用于STM32-V5开发板的USART工程中断方式|STM32F407 - 安富莱电子论坛 - Powered by phpwind
查看完整版本: [--
【STM32CubeF4教程】第三期:使用STM32CubeMX生成用于STM32-V5开发板的USART工程中断方式
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&第三期:使用STM32CubeMX生成用于STM32-V5开发板的USART工程中断方式本期教程使用STM32CubeMX生成可用于STM32-V5开发板的USART1中断方式的工程,通过本期教程让大家对STM32CubeMX设置外设中断有个了解。&& 1.1&&STM32CubeMX生成USART工程中断方式配置&& 1.2&&USART工程验证&& 1.3&&完整工程下载*******************************************************************************************************************************************1.1&&STM32CubeMX生成USART工程中断方式配置&&&&&&关于使用STM32CubeMX生成USART工程的方法已经在第二期教程中讲解了,这里就不再赘述了,重点说一下中断配置。第1步:点击USART1按钮[attachment=6740]然后使能USART中断。[attachment=6741]第2步:设置NVIC的优先级分组以及抢占优先级和子优先级,首先点击选择NVIC按钮[attachment=6742]关于NVIC的优先级分组,抢占优先级和子优先级,大家可以看我们STM32-V5开发板用户手册的第12章。[attachment=6745]设置完记得点击OK进行保存。通过上面两部USART的中断方式就算设置完了,剩下就是生产相应的工程,具体方法参考第2期教程。1.2&&USART工程验证&&&&&& STM32CubeMX生成的工程如下:[attachment=6746]生成工程后,用户只需添加简单的代码就可以通过开发板上面的串口打印数据,这里我们添加几行简单的代码实现每100ms发送字符串&&****************************************************************************************************#include &stm32f4xx_hal.h&#include &usart.h&#include &gpio.h&#define RXBUFFERSIZE&&20&&&&&&&&&&&&&&&&&&&&&&&&&&&&/* 以下三行用户添加 */extern UART_HandleTypeDef huart1;uint8_t aTxBuffer[] = &\r\n&;/* Private function prototypes -----------------------------------------------*/void SystemClock_Config(void);int main(void){&&/* MCU Configuration----------------------------------------------------------*/&&/* Reset of all peripherals, Initializes the Flash interface and the Systick. */&&HAL_Init();&&/* Configure the system clock */&&SystemClock_Config();&&/* Initialize all configured peripherals */&&MX_GPIO_Init();&&MX_USART1_UART_Init();&&while (1)&&{&&&&&&HAL_UART_Transmit_IT(&huart1, aTxBuffer, RXBUFFERSIZE);&&&&/* 以下两行用户添加 */&&&&&&HAL_Delay(100);&&&&}}****************************************************************************************************添加完后,配置下工程下载选项就可以将代码下载到STM32-V5开发板运行,需要配置的位置有如下几项:[attachment=6747][attachment=6748]配置好后,千万记得点击确定,这样就可以点击MDK上面的load图标下载到开发板。[attachment=6749] 下载后,复位开发板,然后USB转串口线连接PC机和开发板。PC机上运行SecureCRT软件,波特率设置为 115200bps,无硬件流控。从PC机的软件界面观察程序执行结果,结果如下:[attachment=6750] 1.3 完整工程下载[attachment=6751]
已经整理完,发布。
为啥接收的时候不进中断呀,嘻嘻。咋解决呀?
:为啥接收的时候不进中断呀,嘻嘻。咋解决呀? ( 13:21) 可以进中断的,您遇到的是怎么个情况,也是用的STM32CubeF4吗。
上周六拿到板子,因为有事,今天才开箱,用Cube玩了下,也是进不了中断,后来在使用HAL_UART_Receive_IT以后就可以进了,发送也是,中断方式用HAL_UART_Transmit_IT。瞎捣鼓,第一次接触STM32,坛主能帮忙分析下什么原因不。/**&&* @brief&&Receives an amount of data in non blocking mode &&* @param&&huart: pointer to a UART_HandleTypeDef structure that contains&&*&&&&&&&&&&&&&&&&the configuration information for the specified UART module.&&* @param&&pData: Pointer to data buffer&&* @param&&Size: Amount of data to be received&&* @retval HAL status&&*/HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size){&&uint32_t tmp = 0;&&&&tmp = huart-&S&&&&if((tmp == HAL_UART_STATE_READY) || (tmp == HAL_UART_STATE_BUSY_TX))&&{&&&&if((pData == NULL ) || (Size == 0)) &&&&{&&&&&&return HAL_ERROR;&&&&}&&&&&&&&/* Process Locked */&&&&__HAL_LOCK(huart);&&&&&&&&huart-&pRxBuffPtr = pD&&&&huart-&RxXferSize = S&&&&huart-&RxXferCount = S&&&&&&&&huart-&ErrorCode = HAL_UART_ERROR_NONE;&&&&/* Check if a transmit process is ongoing or not */&&&&if(huart-&State == HAL_UART_STATE_BUSY_TX) &&&&{&&&&&&huart-&State = HAL_UART_STATE_BUSY_TX_RX;&&&&}&&&&else&&&&{&&&&&&huart-&State = HAL_UART_STATE_BUSY_RX;&&&&}&&&&&&&&/* Enable the UART Parity Error Interrupt */&&&&__HAL_UART_ENABLE_IT(huart, UART_IT_PE);&&&&&&&&/* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */&&&&__HAL_UART_ENABLE_IT(huart, UART_IT_ERR);&&&&&&&&/* Process Unlocked */&&&&__HAL_UNLOCK(huart);&&&&&&&&/* Enable the UART Data Register not empty Interrupt */&&&&__HAL_UART_ENABLE_IT(huart, UART_IT_RXNE);&&&&&&&&return HAL_OK;&&}&&else&&{&&&&return HAL_BUSY; &&}}
:上周六拿到板子,因为有事,今天才开箱,用Cube玩了下,也是进不了中断,后来在使用HAL_UART_Receive_IT以后就可以进了,发送也是,中断方式用HAL_UART_Transmit_IT。瞎捣鼓,第一次接触STM32,坛主能帮忙分析下什么原因不。/**  * @brief  Receives an amo .. ( 20:20) 第一接触,建议不要搞这个,这个东西还不适合初学者(这么说是因为资料太少了),我在论坛简单的搞了几期也是方便想入门CubeF4的人。这个我也研究的不深,你再研究研究,网上能查的资料太少了,不好帮你,见谅。
查看完整版本: [--
Powered by
Time 0.044791 second(s),query:2 Gzip enabled2976人阅读
STM32Cube 是一个全面的软件平台,包括了ST产品的每个系列。(如,STM32CubeF4 是针对STM32F4系列).
平台包括了STM32Cube 硬件抽象层和一套的中间件组件(RTOS, USB, FS, TCP/IP,& Graphics, 等等).
1) 安装STM32CubeMX (图形化工具,用于STM32的配置)
2)安装CUBE工具(固件例程和TCP/IP,USB ,FS等驱动)
&& -& 直观地进行STM32选择
& -&& 图形化配置
& - C代码项目产生,涵盖STM32初始化部分。兼容IAR, KEIL和GCC编译器
& - 支持Eclips
从这里开始吧:-)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:186684次
积分:2174
积分:2174
排名:第15258名
原创:26篇
转载:59篇
评论:33条
(1)(1)(3)(1)(3)(1)(1)(1)(11)(1)(5)(6)(2)(1)(7)(10)(2)(5)(5)(6)(1)(8)(1)(1)(1)21ic官方微信-->
后使用快捷导航没有帐号?
查看: 3850|回复: 15
关于STM32CubeMX的上手使用
&&已结帖(20)
主题帖子积分
中级技术员, 积分 194, 距离下一级还需 106 积分
中级技术员, 积分 194, 距离下一级还需 106 积分
主题帖子积分
专家等级:结帖率:50%
主题帖子积分
中级技术员, 积分 194, 距离下一级还需 106 积分
中级技术员, 积分 194, 距离下一级还需 106 积分
本帖最后由 ludl 于
19:21 编辑
之前固件库里有个例程文件夹,里面有各个外设的使用例程,每个外设针对不同的用法又有不同的例程,上手起来比较方便
可以根据例程方便的找到各个初始化和应用的时候需要的函数入口。
用STM32CubeMX时,生成的程序模板比较规范整齐,但和库函数版本的不一样。
STM32CubeMX有自己的一套底层函数,通过操作各个寄存器来调用外设。
但程序模板只是完成了外设的初始化
发现cube版里面例程只有很少的几个,是基于几块官方开发板的,而且只是实现了外设的基本功能,让外设动起来而已
实际使用往往不知道初始化之后该怎么操作,也找不到对应的函数入口。
程序里面也用了很多的结构体,很多是几层结构体嵌套,看起来很累。
怎么样才能上手CubeMX?哪里能找到类似固件库里的丰富的例程?
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
中级技术员, 积分 194, 距离下一级还需 106 积分
中级技术员, 积分 194, 距离下一级还需 106 积分
主题帖子积分
专家等级:结帖率:50%
主题帖子积分
中级技术员, 积分 194, 距离下一级还需 106 积分
中级技术员, 积分 194, 距离下一级还需 106 积分
我现在实际使用往往是用cubeMX生成初始化模板后,直接操作寄存器来设置和启动外设
感觉没有发挥cubeMX应有的功能
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
助理工程师, 积分 1041, 距离下一级还需 959 积分
助理工程师, 积分 1041, 距离下一级还需 959 积分
主题帖子积分
专家等级:结帖率:0%打赏:0.00受赏:10.00
主题帖子积分
助理工程师, 积分 1041, 距离下一级还需 959 积分
助理工程师, 积分 1041, 距离下一级还需 959 积分
看对应的.h文件,里面有相应的接口函数
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
助理工程师, 积分 1214, 距离下一级还需 786 积分
助理工程师, 积分 1214, 距离下一级还需 786 积分
主题帖子积分
专家等级:结帖率:50%
主题帖子积分
助理工程师, 积分 1214, 距离下一级还需 786 积分
助理工程师, 积分 1214, 距离下一级还需 786 积分
:handshake:victory::P&&说得对:“程序里面也用了很多的结构体,很多是几层结构体嵌套,看起来很累。”
最 头疼 就是这种:【绕来绕去】的,很不便于 学习。。。
作为例子:就是要:‘一根直 肠子 走到底’、让人 一目了然。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
助理工程师, 积分 1214, 距离下一级还需 786 积分
助理工程师, 积分 1214, 距离下一级还需 786 积分
主题帖子积分
专家等级:结帖率:50%
主题帖子积分
助理工程师, 积分 1214, 距离下一级还需 786 积分
助理工程师, 积分 1214, 距离下一级还需 786 积分
我现在实际使用往往是用cubeMX生成初始化模板后,直接操作寄存器来设置和启动外设
感觉没有发挥cubeMX应有 ...
其实 也不错了,,去找 它的 HAL 库,也不知道 该函数
究竟 使用、影响了 哪些 寄存器,也没有 细节的 HAL库 手册 。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
主题帖子积分
专家等级:结帖率:82%
主题帖子积分
提示: 作者被禁止或删除 内容自动屏蔽
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
中级技术员, 积分 194, 距离下一级还需 106 积分
中级技术员, 积分 194, 距离下一级还需 106 积分
主题帖子积分
专家等级:结帖率:50%
主题帖子积分
中级技术员, 积分 194, 距离下一级还需 106 积分
中级技术员, 积分 194, 距离下一级还需 106 积分
看对应的.h文件,里面有相应的接口函数
看过,但还是一头雾水,因为参数是反复嵌套的结构体
看起来很是费力
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
主题帖子积分
专家等级:结帖率:0%打赏:0.00受赏:38.00
主题帖子积分
这是一种发展趋势;
是很难看到底层代码的;
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
助理工程师, 积分 1214, 距离下一级还需 786 积分
助理工程师, 积分 1214, 距离下一级还需 786 积分
主题帖子积分
专家等级:结帖率:50%
主题帖子积分
助理工程师, 积分 1214, 距离下一级还需 786 积分
助理工程师, 积分 1214, 距离下一级还需 786 积分
看过,但还是一头雾水,因为参数是反复嵌套的结构体
看起来很是费力
确实如此,CUBE之后 直接 寄存器操作,
其实 也是一种 很可靠的 做法。。
只要你的程序是独立的,不与别人
关联,就完全可以 寄存器搞定。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
中级技术员, 积分 194, 距离下一级还需 106 积分
中级技术员, 积分 194, 距离下一级还需 106 积分
主题帖子积分
专家等级:结帖率:50%
主题帖子积分
中级技术员, 积分 194, 距离下一级还需 106 积分
中级技术员, 积分 194, 距离下一级还需 106 积分
其他就没有更好的入门可以参考的资料了吗?
还是说这要等官方慢慢完善补充?
那有没有增加例程的计划?
毕竟按照官方的意见,cubeMX是趋势,就想少走点弯路,新项目想用这个了
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
初级工程师, 积分 2561, 距离下一级还需 439 积分
初级工程师, 积分 2561, 距离下一级还需 439 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:2.00
主题帖子积分
初级工程师, 积分 2561, 距离下一级还需 439 积分
初级工程师, 积分 2561, 距离下一级还需 439 积分
没用过那个 效果怎么样啊
专注STM32嵌入式软件开发,承接STM32嵌入式软件开发,快捷效率安全可靠,联系方式QQ:
主题帖子积分
中级技术员, 积分 194, 距离下一级还需 106 积分
中级技术员, 积分 194, 距离下一级还需 106 积分
主题帖子积分
专家等级:结帖率:50%
主题帖子积分
中级技术员, 积分 194, 距离下一级还需 106 积分
中级技术员, 积分 194, 距离下一级还需 106 积分
没用过那个 效果怎么样啊
生成的那部分的代码还是不错的
就是后面自己写的感觉远不如固件库的好上手
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
初级工程师, 积分 2029, 距离下一级还需 971 积分
初级工程师, 积分 2029, 距离下一级还需 971 积分
主题帖子积分
专家等级:结帖率:100%打赏:8.88受赏:28.88
主题帖子积分
初级工程师, 积分 2029, 距离下一级还需 971 积分
初级工程师, 积分 2029, 距离下一级还需 971 积分
怎么设置系统滴答时时钟?
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
实习生, 积分 3, 距离下一级还需 47 积分
实习生, 积分 3, 距离下一级还需 47 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 3, 距离下一级还需 47 积分
实习生, 积分 3, 距离下一级还需 47 积分
最近刚用Cube,帮顶!!
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
中级技术员, 积分 174, 距离下一级还需 126 积分
中级技术员, 积分 174, 距离下一级还需 126 积分
主题帖子积分
专家等级:结帖率:0%打赏:0.00受赏:15.00
主题帖子积分
中级技术员, 积分 174, 距离下一级还需 126 积分
中级技术员, 积分 174, 距离下一级还需 126 积分
今天刚用,挺实挺不好用,弄个USART1中断接收都搞好久。。。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
高级工程师, 积分 5250, 距离下一级还需 2750 积分
高级工程师, 积分 5250, 距离下一级还需 2750 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:5.00
主题帖子积分
高级工程师, 积分 5250, 距离下一级还需 2750 积分
高级工程师, 积分 5250, 距离下一级还需 2750 积分
怎么样才能上手CubeMX?哪里能找到类似固件库里的丰富的例程?目前来说还没有官方例程,需要自己摸索。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
技术新星奖章
人才类勋章
时间类勋章
时间类勋章
沉静之湖泊
发帖类勋章
时间类勋章
无冕之王奖章
等级类勋章
技术领袖奖章
人才类勋章
时间类勋章
坚毅之洋流
发帖类勋章
荣誉元老奖章
等级类勋章
技术奇才奖章
人才类勋章
湍急之河流
发帖类勋章
时间类勋章
精华达人奖章
等级类勋章
时间类勋章
欢快之小溪
发帖类勋章
希望之星奖章
等级类勋章}

我要回帖

更多关于 stm32cubemx教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信