简介
环境如下:
- 硬件:NUCLEO-F767ZI板
- 最初配置:STM32CubeMX (HAL库)
- IDE:TrueSTUDIO
- 串口工具:CuteCOM
STM32CubeMX 和 STM32CubeMX 的配置和
配置
打开 STM32CubeMX-> 新项目-> 选择 NU232CubeMX-F767,选择 NU 图形
显示面板弹出窗口选择安装 NO:
OK如下所示:默认的LD3(红灯)LD3(红灯)不予优先变换
图2 (蓝理绿,)。
菜单栏Project -> Setting -> Project选项卡:
填入工程名,选择工程放置的文件目录,IDE选择TrueSTUDIO。
然后是Code Generator选项卡:
都配置完后,Project -> Generate Code。弹出:选择
时并不能像Win10中那样会直接打开Keil,这里是会启动浏览器,大概是关联配置,这里选择关闭器会打开项目。
TrueStudio
打开 TrueSTUDIO(默认 /opt/Atollic_TrueSTUDIO_for_STM32_x86_64_9.1.0/ide 目录)。
File -> Import -> General -> Existing Projects into Workspace -> 接下来,选择上面的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 */
工程的e文件保持不变即可,然后点击运行->调试自动调试。
调试区域的elf文件或者可以停止调试... 7 切换运行工作右图。
点击图标按钮按钮,开发板蓝灯闪烁,打开CuteCom:
# sudo apt install cutecom
sudo chmod 777 /dev/ttyACM0
sudo cutecom
可以看到数据的打印:
简介
环境如下:
- 硬件:NUCLEO-F767ZI板
- 最初配置:STM32CubeMX (HAL库)
- IDE:TrueSTUDIO
- 串口工具:CuteCOM
STM32CubeMX 和 STM32CubeMX 的配置和
配置
打开 STM32CubeMX-> 新项目-> 选择 NU232CubeMX-F767,选择 NU 图形
显示面板弹出窗口选择安装 NO:
OK如下所示:默认的LD3(红灯)LD3(红灯)不予优先变换
图2 (蓝理绿,)。
菜单栏Project -> Setting -> Project选项卡:
填入工程名,选择工程放置的文件目录,IDE选择TrueSTUDIO。
然后是Code Generator选项卡:
都配置完后,Project -> Generate Code。弹出:选择
时并不能像Win10中那样会直接打开Keil,这里是会启动浏览器,大概是关联配置,这里选择关闭器会打开项目。
TrueStudio
打开 TrueSTUDIO(默认 /opt/Atollic_TrueSTUDIO_for_STM32_x86_64_9.1.0/ide 目录)。
File -> Import -> General -> Existing Projects into Workspace -> 接下来,选择上面的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 */
工程的e文件保持不变即可,然后点击运行->调试自动调试。
调试区域的elf文件或者可以停止调试... 7 切换运行工作右图。
点击图标按钮按钮,开发板蓝灯闪烁,打开CuteCom:
# sudo apt install cutecom
sudo chmod 777 /dev/ttyACM0
sudo cutecom
可以看到数据的打印:
举报