【百问网智能家居3】外设开发

【百问网智能家居】外设开发

该博客是本人在学习百问网视频过程中的记录与心得,所以内容可能有些许错误,欢迎大家指正。

一、基础外设开发

对于STM32F103C8T6芯片,它含有四个时钟源,分别是HSE(高速外部时钟),HSI(高速内部时钟),LSI(低俗内部时钟),LSE(低速外部时钟)。一般来说,我们采用精度更高的HSE来作为系统时钟,对于C8T6芯片,我们使用8MHZ的晶振作为HSE,通过倍频器实现9倍频来作为系统时钟(72MHZ)。

此外,对于GPIO来说,存在8种工作模式:

输入模式有四种:上拉输入、下拉输入、浮空输入、模拟输入;

输出模式有四种:推挽输出、开漏输出、复用推挽输出、复用开漏输出;

其中比较重要的推挽输出和开漏输出有这些区别,推挽输出可以输出高电平和低电平,而开漏输出只能输出低电平,只有在外加了上拉电阻之后才可以输出高电平,开漏输出的应用场景典型的就有IIC。对于一般场景,都是采用推挽输出的方式,同时,推挽输出同样可以用来检测IO口的输入状态。对于输入模式,进行AD数据采集的时候需要采用模拟输入方式,对于默认状态的STM32单片机,IO为浮空出入模式。

二、串口相关

串口可以进行串口设备的互通信,一般可以在项目初期进行串口打印来调试信息。对于ARM架构,有半主机模式的概念,通过重定向fputc/fgetc来实现printf等函数串口打印的效果。在非RTOS的情况下,使用Microlib库就可以不用定义_stdout /_stdin。具体代码如下:

struct __FILE
{
int handle;
};
/* FILE is typedef’d in stdio.h. */
FILE __stdout;
int fputc(int ch, FILE f)
{
/
Your implementation of fputc(). /
HAL_UART_Transmit(&huart1, (uint8_t
)&ch, 1, 10);
return ch;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值