又到了最近更新的时间了,肯定不能放过更新的机会呀。趁这个空档时间,我还可以更新一下新的进展。
小主我是做新能源电驱的(某厂就不说了),最近Project堆在一起但是不影响我玩国产MCU
那么既然说了要用UART串口,我们就先评估官方的Demo给的UART程序试试。
先放官方Readme写了一些什么,逐个评估功能:
1、一个是打印测试串口,可用printf函数,这个的话我在MDK的Project程序内看到了这个功能(负责输出一些你想要的数值或者是你想发送的字符串/HEX数据也可以)
2、用户串口(就是给我们尝试自发自收的功能的,基本上日常用这个串口居多,一般没有问题)
那我就拿最典型的用户串口给大家演示一下一般以前STM32功能用的不好的话(代码写得不好,有限制长度的话会没那么好用),限制了长度的效果可就差一些,一旦有更长的数据,就得拆分了(有可能用得到中断进行数据拆分,但是很浪费CPU运行效率,一般这种办法不太好)
上MDK软件主界面:
文件先看main.c内的相关模块,例如:串口初始化,指定TX发送通道这类基本操作。这里第一时间看到初始化了UART1和3,选择发送也是UART1和3,之后是数据长度,还有这些模式选择,都是比较容易理解。
int main(void)
{
System_Init();
Uart_Init();
UART1_Init();
UART3_Init();
/* UARTx Tx */
HAL_UART_Transmit(&UART1_Handle, gu8_UART1Test, strlen((char *)gu8_UART1Test),0);
HAL_UART_Transmit(&UART3_Handle, gu8_UART3Test, strlen((char *)gu8_UART3Test),0);
/* Select Mode: TEST_LOOP、TEST_UART1_IT、TEST_DMA、TEST_UART_ABORT、TEST_UART2,TEST_UART3*/
APP_Uart_Test(TEST_UART2);
while(1)
{
}
}
之后我们先试试我们这个demo,烧录到我们的开发板试试。
一切果然很顺利,下载了以后,我们打开串口调试助手试试,我随便打了一些给串口发送,返回的值和我发送的一样,第一时间我先选了HEX数据,显示的值换算过来也是123
后面选了ASCII模式,一样的道理,发送123直接返回123,456也是456,所以问题不大。输入更长的数字,1-9也没有问题,那么功能验证OK。下回安排先发送一些预设的语段或者是数字出现,对暗号试试。后续会更快更新了,哈哈,又得去加班了,下回更新。
对了,附上连接的图:
我这会用的是PA2和PA3,用的是UART 2,对应的软件的Test哈哈
本帖最后由 JohnMatthrew 于 2022-10-28 22:57 编辑引用: 火辣西米秀 发表于 2022-11-6 10:00 这是个什么线,连接这么远
串口的Rx,问题不大,这个线只有10cm左右,串口下载器是这样的了,因为外挂的