嵌入式蓝桥杯所有模块HAL库函数和代码总结

文章详细介绍了在蓝桥杯竞赛中可能用到的嵌入式编程函数模块,包括EEPROM读写、I2C通信、TIM定时器、UART串口通信、ADC和DAC模拟数字转换,强调了重要模块如TIM和HAL库函数的使用

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

描述:本文整理了所有嵌入式蓝桥杯可能使用到的函数模块和代码

!!!!!!注意重点掌握每个函数,函数内容(代码)可自行编写,但是需要调用的HAL库函数是唯一的

II2模块-->>EEPROM读写

------->>注意该模块无HAL库函数调用

此模块通过编写II2时序对具有存储功能的外设进行读写操作,如对M24C02芯片(存储芯片)、MCP4017T芯片(数字电位器)进行操作。

其中M24C02又称为AT24C02---->>>>即eeprom,此模块在竞赛中多次出现,重点需掌握对IIC时序的理解。

MCP4017目前为止未在考题中出现。

---------------------根据官方给出的i2c_hal.c-----------------------

我们编写对eeprom的读写函数。


/**
  * @param--address:要将数据写入到eeprom中的地址
  * @param--info:写如到eeprom中的数据内容
  * @retval: None
  */
void x24c02_write(unsigned char address,unsigned char info)
{
    I2CStart();/*开启I2C*/
    I2CSendByte(0xa0);/*这里首先要对eeprom进行选择,因为IIC总线能够挂载多个外设,所以这里需要选 
    I2CWaitAck();                                                        择外设为eeprom*/
    /*下面开始真正对eeprom进行操作*/
    I2CSendByte(address);/*选择eeprom的地址*/
    I2CWaitAck();/*等待eeprom回应*/
    I2CSendByte(info);/*发送要写入到所选地址中的数据*/
    I2CWaitAck();/**/
    I2CStop();/*关闭I2C*/
}/*编写注意:只要记得在代码开始和完成时分别调用I2CStrat();和I2CStop();
            以及在每次发送数据位后调用I2CWaitAck();就可以快速写出代码*/


/**
  * @param--address:选择读取哪个存储单元内的数据
  * @retval--(uint8_t) val:因为是读操作,所以1必要要将读取到的内容返回,故需要调用return函数
  *                        注意此时函数从void类型---->>变为uint8_t(返回值的类型)          
  **/

uint8_t x24c02_read(uint8_t address)
{
    unsigned char val;
    I2CStart();
    I2CSendByte(0xa0);/*选择外设为eeprom*/
    I2CWaitAck();
    
    I2CSendByte(address);
    I2CWaitAck();
    I2
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值