单片机C语言设计框架

2019-08-04 18:27发布

本人是做单片机项目的,一般不带系统,像msp430系列的,本人感觉自己没有一个好的程序框架,写程序的既不美观也没效率,特别是硬件初始化的时候,比如初始化UART模块:
void Init_UART(void)
{
  USB_PORT_SEL   |= TXD_U + RXD_U          ; // 选择引脚功能
  USB_PORT_DIR   |= TXD_U                  ; // 选择引脚功能
  UCA1CTL1        = UCSWRST                ; // 状态机复位
  UCA1CTL1       |= UCSSEL_1               ; // CLK = ACLK
  UCA1BR0         = 0x03                   ; // 32kHz/9600=3.41
  UCA1BR1         = 0x00                   ;
  UCA1MCTL        = UCBRS_3 + UCBRF_0      ; // UCBRSx=3, UCBRFx=0
  UCA1CTL1       &= ~UCSWRST               ; // 启动状态机
  UCA1IE         |= UCRXIE                 ; // 允许接收中断
}
我看到很多人都这样写,但是如果我要做另外一个项目的话,如果要更改UART的配置的话,UCBRS_3,UCSWRST代表什么又得去查资料,很麻烦。所以我想整出一个框架出来(不是系统,只是为了平常做项目方便),如果我要将uart初始为9600波特率,只要调用Init_UART(9600),只可以了,不想去管那些寄存器,比如把程序分为(1)硬件驱动层(2)硬件逻辑层(3)应用层,还有什么设备控制块(DCB)和设备描述符之类的东西,但本人能力有限不知道现在有没有现成的一些好的框架
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
dirtwillfly
1楼-- · 2019-08-04 18:37
msp430方面的程序框架还真没见过多好的
dirtwillfly
2楼-- · 2019-08-04 19:34
 精彩回答 2  元偷偷看……
niuyaliang
3楼-- · 2019-08-04 21:24
难呀,我觉得基本不可能这个实现,除非你一辈子只用这么一个芯片
zxf0168
4楼-- · 2019-08-04 23:01
不好弄啊,真心的

一周热门 更多>