STMCU小助手
发布时间:2022-10-31 11:10
|
芯片基本外设配置 在SYS里面开启Serial Wire调试接口 在RCC里面使能HSE (Crystal/Ceramic Resonator) 配置时钟树 选中“HSE”、"PLLCLK",在HCLK(MHz)中输入64,回车,软件会自动配置数值。
配置USART1外设 在connectivity选项卡中,选择"USART1",在mode中选择:Asynchronous(异步通讯) 在“Parameter Settings”中设置基本参数,参数可以自定义,但是通讯双方一定要相同 Baud Rate(波特率):115200,常用有4800,9600。 Word Length(数据位):8,可选7、8、9 Parity(校验位):None,可选None、Even、Odd Stop Bits(停止位):1,常用有1、2、0.5、1.5 其他参数默认值。
生成代码后,在MDK软件中打开,在debug中设置“Reset and Run”。 使用串口的三种方法(直接调用hal库、printf、中断方式) 第一种方法(直接调用HAL库) 在int main()主函数中写入如下代码
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout) UART_HandleTypeDef *huart:指定串口,usart1就是&huart1。usart2就是改为&huart2。 uint8_t *pData:就是要发送的数据 uint16_t Size:单位为字节,至少要比发送数据长度要大。 uint32_t Timeout:超时时间 第二种方法(printf) 在main.c文件中添加头文件
main.c文件中加入重定向函数 ,代码中添加了#ifdef宏定义进行条件编译,如果使用GUNC编译,则PUTCHAR_PROTOTYPE 定义为int __io_putchar(int ch)函数,否则定义为int fputc(int ch, FILE *f)函数
在int main主函数while循环中加入代码
第三种方法(使用中断) 在CubeMX中,设置USART1全局中断使能,然后重新生成代码。
在main.c文件中定义变量
在int main主函数中,MX_USART1_UART_Init();后面写入串口输出函数
在while(1)循环中,加入接收中断函数
再int main函数后面写上中断回调函数
编译,下载到开发板即可
———————————————— 版权声明:SCCELE |
微信公众号
手机版