你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于stm32串口通信和LED点亮经验分享

[复制链接]
攻城狮Melo 发布时间:2023-4-7 22:10
串口协议和RS—232标准
串口通信协议:是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485
RS—232标准:RS232接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。因此,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成rs232类型,再交叉连接。尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS232接口(通常为DB9封装),因此不能直接交叉连接。

RS232电平与TTL电平的区别
TTL标准:
TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。
RS232标准:
逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次

USB/TTL转RS232



CH340串口安装

3e2f978cc9cf45dfa55a1b2c4360e87e.png

双击安装即可,检查是否安装成功,插入USB串口后,点击设备管理器,检查端口是否有CH340

ad9072c2ac8640b4bbc660f23224da3f.png

安装stm32cubemx并编写程序
安装,把所有的框都选上
安装完成后,点击help,下载依赖包



ac4a84eda14b467f97955e2623e694d2.jpg

下载完成后,选择自己的芯片,选择前面的复选框下载,绿色代表下载好了
你们选择后,点击install now就行



f89d4eef535f44748450be85262698e4.png

下载完成后回到home界面。点击图中的地方,创建新项目



93f884af97f5488abbaf366a2a72c61f.png

点击part name输入自己的芯片,以stmc8t6
为例,之后中间出现的信息点击之后,在点击start project

023f017954964c87a095208538e87b15.png

点击system core,进入里面的sys,在debug那里选择serial wire

31f33bbac64b405fb096a49d1bc6fdbc.png

12e93895a07d479dbf373c6993c1f5fa.png

接下来进行配置时钟,进入rcc,有两个时钟hse,lse,我们要用GPIO借口,这些接口在APB2里
观察时钟架构,APB2由hse时钟控制,同时在这个界面把PLLCLK右边选上


f0fd547873664e48b74f41477911e965.png

所以我们把hse那里设置为crystal/ceramic resonator就行了


070ccaee64e54cc492b4a8d522bcd31f.png

接下来就是点击相应的引脚设置输出寄存器,output哪一项,一共三个PA7
PB9 PC15


a27cf9e25a154d2d9615672c414ef150.png

接下来点击system core里的GPIO,点击引脚名,把输出等级改为hight
mode不用改

59ead86d28ff4d7297bfa61923e85627.png

点击project manager 配置好自己的路径名和项目名,然后改IDE为MDK—ARM


c881621917784142b2f5d6ef969610e2.png

进入code generate界面,选择生成初始化文件.c/.h,之后在点击generate code就行了

c67fe11176354f37a9c4fc47a948c098.png

打开刚刚生成的项目将main.c的主函数部分用下列函数代替
  1. SystemClock_Config();//系统时钟初始化
  2.   MX_GPIO_Init();//gpio初始化
  3.   while (1)
  4.   {               
  5.                 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET);//PA7亮灯
  6.                 HAL_Delay(500);//延时0.5s
  7.                 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);//PA7熄灯
  8.                 HAL_Delay(500);//延时0.5s               
  9.                 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);//PB9亮灯
  10.                 HAL_Delay(500);//延时0.5s
  11.                 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄灯
  12.                 HAL_Delay(500);//延时0.5s
  13.                
  14.                 HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_RESET);//PC15亮灯
  15.                 HAL_Delay(500);//延时0.5s
  16.                
  17.                 HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_SET);//PC15熄灯
  18.                 HAL_Delay(500);//延时0.5s
  19.                
  20.   }

复制代码

22cb175110fa4a96af460c4e35d48ce1.png

在烧录运行,串口要断电置boot0为0,之后即可编译运行成功

实现led灯的周期闪烁

KX(6`_HUGG73G7Z8FBCYPVH.png

进入flymcu进行烧录


044d3ca05114434394681e15df707b18.png

效果图如下

ff89631870d6418989529cc56ddb27ab.gif

用stm32完成USART串口通信
打开stm32cubeMX,进入我的工程,选择芯片,开始进入

159a7c0032b442119a729d978a72be29.png

接下来选择时钟配置


4059a3e67e6145ada889513e1776e372.png

设置USART2,点击MODE,选择Asynchronous


bf3046a373f245e891b5f9af35f3208b.png

接着点击CLOCK configurstion选择HSE,PLLCLK


bcc9107bf51a42ef9ba120a9d836a4f9.png

设置中断,在NVIC SEtting中点击Enabled


564cac8a34734fd8ac9c1c9170d36268.png

后面设置路径,只需要修改Application Structure为Basic,在Toolchain/IDE为MDK—ARM,在Code generate勾选生成项目

2486d31a915a43838fb1b172c7a72174.png

5b4e5aa9859046309ae44797de05af6f.png


后面生成工程打开即可
只需要把main.c里面的程序改为下列代码

  1. char data[]="hello windows!\n";//发送的数据
  2. HAL_UART_Transmit(&huart2, (uint8_t *)data, 15, 0xffff);//发送       
  3. HAL_Delay(1000);//延时
复制代码

ff40a9c53a444b94b52db953420f5e8f.png

后面进行烧录
打开串行助手打印出hello windows

0e5d2290f35f4c6bbaec437ae636814c.png

接下来进行波形观察
对keil进行相关操作

e4af5a84177e4ca1a5502f1a52169b6c.png

之后打开逻辑分析仪,选择端口,设置bit,运行就可观察到波形

3b479d2791f74ef89814ac75615b5171.png

大约1s一个波形

686dcd02ded24739b0e0e7e2248dd8d3.png

总结

通过本次实验我更加了解了stm32cubeMX的分装功能,更加了解到stm32d寄存器映射原理,最终完成了本次实验
————————————————
版权声明:&是梦都会空
如有侵权请联系删除

IDFO{}CUKF@7B2YG%`DVKED.png
收藏 评论0 发布时间:2023-4-7 22:10

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版