|
爱科技、爱创意、爱折腾、爱极致,我们都是技术控
您需要 登录 才可以下载或查看,没有账号?立即注册
x
最近入手二款性价比不错的M0单片机,PY32F003F16、PY32F030K18,宽电源范围,都有DMA,前者最高32M工作频率,后者支持Pll最高48M,开发板也不贵顺便也买了,店家给力国庆期间也发货了,普冉官网开发资料也还比较详细,上手先测试串口通讯DMA的,115200波特率,一切正常,该串口DMA例程没有使用空闲中断,经常用到接收不定长数据,所以改成使用空闲中断的,例程是使用HAL库的,测试正常。
昨天看参考手册串口波持率最高支持4.5M,于是想实际验证一下,波特率设到500k以上就无法通讯了,首先想到开发板上有24M晶振也不知道实际工作在什么频率,由于笫一次接触HAL库,很不习惯,找时钟设置眼花缭乱,边查资料边找,也忘了看厂家提供的资料,转眼到吃饭时间了,问题也就留下了,晚上在想都说HAL库编程更轻松,怎么个找个时钟设置怎么就难到了,日有所思夜有所梦,在大概快早晨时梦境里似乎是遇到代理技术支持,求问PY32F030串口波特率怎么最高只能到500k,当然答案是没有的,后续梦境没有了,醒来惊叹我竟然在梦里把问题描述的那么准确,这也算是让心情不错的梦了,今天查阅厂家提供资料,应用笔记里有时钟设置的文档,原来例程里没有调用时钟配置程序,程序默认设置内部8M时钟运行,所以波特率最高只能到500k,加入时钟配置程序,使用外部24M晶振经过PLL二倍频达到48M运行,实测波特率达到3M串口通讯都正常,但3M以上还是不行,一度以为要到最高4.5M是不是只有超频到72M运行才行呢?后面再看参考手册有一个16倍8倍采样的说法,查HAL手册串口有个初始化结构里有这个选择参数,例程里串口初始化没对这个参数配置,默认是16倍釆样,初始化程序加入配置8倍采样后,期待的4.5M波持率串口通讯终于实现,至此问题解决。 |
|