你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
每日签到
STM32团队2
论坛吐槽优化专区
升级测试
ST意法半导体中文论坛
»
论坛
›
【技术区】
›
ST开发工具
›
【NUCLEO-L496ZG评测】+新建工程寄存器版
返回列表
查看:
879
|
回复:
0
[STM32L496]
【NUCLEO-L496ZG评测】+新建工程寄存器版
[复制链接]
Cortexxx
Cortexxx
当前离线
在线时间
164 小时
UID
3241441
ST金币
0
蝴蝶豆
97
注册时间
2016-1-28
8
主题
164
回帖
97
蝴蝶豆
金牌会员
金牌会员, 积分 2320, 距离下一级还需 2680 积分
最后登录
2020-12-2
收听TA
发消息
发表于 2017-4-8 16:19:43
|
显示全部楼层
|
阅读模式
a0a.1 32b0c
新建工程+串口程序
PG7->LPUART1_TX
PG8->LPUART1_RX
值得一提的是 这里使用的低功耗串口 (是否低功耗我不知道,但这却是噩梦的开始,既然选择了用寄存器编程就要一直走下去...
一开始认为 LPUART和普通的串口差不多,然后就用按照“正常”的方法配置了 LPUART 时钟使能-> 复用设置-> IO设置-> LPUART设置
<font face="simsun">// UART.c</font>
复制代码
然后在main里面随便发送点东西
。
//main.c
LPUART1_Init(40,115200);
LPUART_Printf("HELLO WORLD!\n");
复制代码
结果什么都没发过来。
然后我就用 逻辑分析仪测了一下这两个引脚(PG7&8) 没有电平的变化
然后我就弄了一个电平翻转的程序测试了一下 结果 电平还是没有变化
然后调试看了一下寄存器 很神奇我把整个PG的IO都置高 但是IDR只有后2位(PG0&1)为高;
所以可以排除 时钟的原因;
经过多方调查发现 PWR->CR2 的第9位控制 PG[15..2]的供电
PG[15:2]使用的是外部电源VDDIO2
解决了 IO的问题之后发现 串口发送出来的数据是乱码
乱码基本上跟时序有关 然后看了一下参考手册 Low-Power UART的这个BRR寄存器和UART的有些区别
上面规定了 一个范围
Fck 时钟必须在[3*Bps,.4096*Bps]之间
然后在HAL里面看到这一段说明
发现LPUART算BRR的方法和UART的不一样
不仅仅是Fck/Bot这么简单 BBR=Fck/((Bot&0xfffffff0)>>4))<<4;
这样一个串口的配置就基本完成了
然后弄了一个回环测试
在测试的时候发现了一个问题 把波特率设置为9600的时候出乱码
原因就是上面说过的
Fck 时钟必须在[3*Bps,.4096*Bps]之间
Fck时钟为40M超过了其最大值 4096*9600=39M 所以才出的乱码
其实参考手册上也说了这一段话 只有用32.768 kHz clock LSE 时钟才能把波特率调到9600
PS 可能有些问题说的不对 见谅
LPUART.zip
(232.52 KB, 下载次数: 4)
2017-4-8 16:19 上传
点击文件名下载附件
STM32L496
<
回复
使用道具
举报
返回列表
浏览过的版块
活动专区
STM32
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表