完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
简介
环境如下:
初始配置 打开STM32CubeMX -> New Project -> 选择NUCLEO-F767, 开发板图片双击: 弹出对话框选NO: OK: 如下图所示: 默认的LD2(蓝灯)和LD3(红灯)引脚已变绿, 不予理会. SYS 的 Debug 选 Serial Wire, SWD两线调试, 此时 PA13和PA14会变绿. RCC 的 High Speed Clock(HSE) 选 BYPASS Clock Source, 时钟是板载ST-Link V2_1来的MCO 8MHz. 此时PH0, PH1变绿. USART3 的 Mode 选 Asynchromous(异步), PD8, PD9变绿, 该串口连到ST-Link V2_1的串口(会把数据转发到ST-Link USB虚拟串口, Ubuntu识别为 /dev/ttyACM0). 然后配置时钟, 点击Clock COnfiguration选项卡: System Clock Mux 选择PLLCLK. HSE的Input frequency填8, 对应上面MCO的8M. HCLK(MHz)填216, 回车, 会自动配置时钟. Configuration选项卡中USART3默认已经115200-8-N-1, 不予修改. 菜单栏Project -> Setting -> Project选项卡: 填入工程名, 选择工程放置的文件目录, IDE选择 TrueSTUDIO. 然后是Code Generator选项卡: 都配置完后, Project -> Generate Code. 弹出: 选 Open Project 时并不能像 Win10中那样会直接打开Keil, 这里会弹出浏览器, 大概是没有关联配置, 此处选Close即可. TrueStudio 打开TrueSTUDIO(默认 /opt/Atollic_TrueSTUDIO_for_STM32_x86_64_9.1.0/ide 目录). File -> Import -> General -> Existing Projects into Workspace -> Next, 选择上面STM32CubeMX生成的工程目录作为根目录: 这样工程就就导入了. uasrt.c 文件下面 /* USER CODE BEGIN 1 */ 和 /* USER CODE END 1 */ 之间填入如下代码用于在TrueSTUDIO中支持使用 printf : /* USER CODE BEGIN 1 */ #ifdef __GNUC__ /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf set to 'Yes') calls __io_putchar() */ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif /* __GNUC__ */ /** * @brief Retargets the C library printf function to the USART. * @param None * @retval None */ PUTCHAR_PROTOTYPE { /* Place your implementation of fputc here */ /* e.g. write a character to the EVAL_COM1 and Loop until the end of transmission */ HAL_UART_Transmit(&huart3, (uint8_t *)&ch, 1, 0xFFFF); return ch; } int _write(int file, char *ptr, int len) { int DataIdx; for (DataIdx = 0; DataIdx < len;DataIdx++) { __io_putchar(*ptr++); } return len; } /* USER CODE END 1 */ main.c 中加入如下代码: /* USER CODE BEGIN PFP */ /* Private function prototypes -----------------------------------------------*/ uint8_t count = 0; uint8_t aRxBuffer3[1]; /* USER CODE END PFP */ /* USER CODE BEGIN 2 */ HAL_UART_Receive_IT(&huart3, (uint8_t *)aRxBuffer3, 1); /* USER CODE END 2 */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ ++count; HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin); printf("Hello, %3drn", count); HAL_Delay(100); } /* USER CODE END 3 */ /* USER CODE BEGIN 4 */ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if(huart == &huart3) { __HAL_UART_CLEAR_PEFLAG(&huart3); HAL_UART_Receive_IT(&huart3, aRxBuffer3, 1); HAL_UART_Transmit(&huart3, aRxBuffer3, 1, 10); //Echo } } /* USER CODE END 4 */ Run -> Debug Configurations: 工程的 elf文件保持默认不变即可, 然后点击Run -> Debug即可调试. Debug区域的elf文件右键可以停止调试… 右上角切换工作环境. 按F8或者图中右指向图标按钮即可运行程序, 开发板蓝灯闪烁, 打开CuteCom: # sudo apt install cutecomsudo chmod 777 /dev/ttyACM0sudo cutecom 可以看到数据的打印: 工程下载 https://download.csdn.net/download/weifengdq/10802433 https://github.com/weifengdq/ROS-STM32 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1792 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1626 浏览 1 评论
1094 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
732 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1682 浏览 2 评论
1943浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
740浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
577浏览 3评论
600浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
562浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 13:04 , Processed in 0.593910 second(s), Total 45, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号