完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
系统:linux mint 18.3 xfce 64bit
软件: STM32CubeMX 4.24 SW4STM32 2.4 开发板芯片:STM32F103RCT6,STM32F407VET6 实现效果:打开两个串口助手窗口,一个是USART1的,一个是USART2的,任意一个串口(串口1或者串口2)发送数据过去就会马上通过该串口返回来。 开篇语: 使用STM32CubeMX和SW4STM32具有的优点: (1)跨平台开发的优势,win和linux系统都有现成的安装包,安装sw4stm32过程会提升自动安装STLINK驱动 (2)版本升级积极,我觉得这是一个好现象,说明开发者很重视 (3)最重要的是免费!!!不用到处找破解激活 (1)使用STM32CubeMX在Pinout配置好TIM3,PA8、PD2(LED灯)、USART1、USART2, (2)时钟配置保持默认 (3)设置TIM1时钟,效果是1s进入一次中断 (4)USART1、USART2波特率等置保持不变,设置NVIC,如下图,注意优先级 (5)然后生成SW4STM32工程 (6)使用sw4stm32打开工程 在main.c 添加三处代码,具体位置请大家看提示,整个main.c文件太多就不贴了 /* USER CODE BEGIN PV */ /* Private variables ---------------------------------------------------------*/ uint8_t aTxBuffer[]=“*********串口发送数据××××××××××××rn”; uint8_t aRxBuffer1[1]; // 用来接收串口1发送的数据 uint8_t aRxBuffer2[1]; // 用来接收串口2发送的数据 /* USER CODE END PV */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ HAL_UART_Receive_IT(&huart1,aRxBuffer1,1); // Enable the USART1 Interrupt HAL_UART_Receive_IT(&huart2,aRxBuffer2,1); // Enable the USART2 Interrupt HAL_UART_Transmit(&huart1,aTxBuffer,sizeof(aTxBuffer),100); HAL_UART_Transmit(&huart2,aTxBuffer,sizeof(aTxBuffer),100); HAL_TIM_Base_Start_IT(&htim3); // 启动定时器3 while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ /* USER CODE BEGIN 4 */ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if(huart-》Instance == USART1) // 判断是由哪个串口触发的中断 { HAL_UART_Transmit(&huart1,aRxBuffer1,1,100); // 接收到数据马上使用串口1发送出去 HAL_UART_Receive_IT(&huart1,aRxBuffer1,1); // 重新使能串口1接收中断 } if(huart-》Instance == USART2) { HAL_UART_Transmit(&huart2,aRxBuffer2,1,100); // 接收到数据马上使用串口1发送出去 HAL_UART_Receive_IT(&huart2,aRxBuffer2,1); // 重新使能串口2接收中断 } } void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if(htim-》Instance == TIM3) // 判断是由哪个定时器触发的中断 { HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_8); } } /* USER CODE END 4 */ 如果发现无法实现效果,请检查自己的硬件连接是否正确,还有就是检查USB转TTL是否正常,我就遇到了我的USB转TTL竟然能接收STM32发来的数据但是发送不出去数据,折腾了一晚上,第二天换了个串口线测试是正常的。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1561 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1501 浏览 1 评论
933 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
665 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1555 浏览 2 评论
1847浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
609浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
503浏览 3评论
507浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
488浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 15:09 , Processed in 0.601045 second(s), Total 45, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号